<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://test1.pbc.xxx/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeaceDeadC</id>
	<title>Porn Base Central - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://test1.pbc.xxx/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PeaceDeadC"/>
	<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/wiki/Special:Contributions/PeaceDeadC"/>
	<updated>2026-05-01T16:10:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2981</id>
		<title>Module:Biobox</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2981"/>
		<updated>2025-03-19T00:22:59Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
local CategoryMapping = require(&#039;Module:BioboxCategoryMapping&#039;)&lt;br /&gt;
local BioboxPersonal = require(&#039;Module:BioboxPersonal&#039;)&lt;br /&gt;
local BioboxBody = require(&#039;Module:BioboxBody&#039;)&lt;br /&gt;
local BioboxPersonalPages = require(&#039;Module:BioboxPersonalPages&#039;)&lt;br /&gt;
local BioboxDatabases = require(&#039;Module:BioboxDatabases&#039;)&lt;br /&gt;
&lt;br /&gt;
local ALIAS_TO_PRIMARY = {}&lt;br /&gt;
do&lt;br /&gt;
    for primary, aliases in pairs(CategoryMapping.PARAM_ALIASES) do&lt;br /&gt;
        for _, alias in ipairs(aliases) do&lt;br /&gt;
            ALIAS_TO_PRIMARY[alias] = primary&lt;br /&gt;
        end&lt;br /&gt;
        ALIAS_TO_PRIMARY[primary] = primary&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local STYLES = {&lt;br /&gt;
    INFOBOX = &#039;class=&amp;quot;infoboxnew&amp;quot; align=&amp;quot;left&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; font-size:88%; line-height:1.5em; white-space:normal;&amp;quot;&#039;,&lt;br /&gt;
    HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:112%;&amp;quot;&#039;,&lt;br /&gt;
    LABEL = &#039;width:40%; padding-left:0.1em; overflow-wrap: break-word; font-weight:normal; text-align:left;&#039;,&lt;br /&gt;
    SECTION_HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:100%;&amp;quot;&#039;,&lt;br /&gt;
    ODD_ROW = &#039;background-color:#F7F7F7;&#039;,&lt;br /&gt;
    EVEN_ROW = &#039;background-color:white;&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isPositive(value)&lt;br /&gt;
    if isEmpty(value) then return false end&lt;br /&gt;
    value = tostring(value):lower()&lt;br /&gt;
    local positiveValues = {&lt;br /&gt;
        [&#039;yes&#039;] = true,&lt;br /&gt;
        [&#039;y&#039;] = true,&lt;br /&gt;
        [&#039;ya&#039;] = true,&lt;br /&gt;
        [&#039;yep&#039;] = true,&lt;br /&gt;
        [&#039;true&#039;] = true,&lt;br /&gt;
        [&#039;1&#039;] = true&lt;br /&gt;
    }&lt;br /&gt;
    return positiveValues[value] or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local POSITIVE_ONLY_FIELDS = {&lt;br /&gt;
    [&#039;tattoo&#039;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function normalizeKeys(args)&lt;br /&gt;
    local normalized = {}&lt;br /&gt;
    local seenParams = {}&lt;br /&gt;
    local processedAliases = {}&lt;br /&gt;
    local firstOccurrence = {}&lt;br /&gt;
    &lt;br /&gt;
    for key, value in pairs(args) do&lt;br /&gt;
        local normalizedKey = tostring(key):gsub(&amp;quot; &amp;quot;, &amp;quot;_&amp;quot;):lower()&lt;br /&gt;
        local primaryKey = ALIAS_TO_PRIMARY[normalizedKey] or normalizedKey&lt;br /&gt;
        &lt;br /&gt;
        if not firstOccurrence[primaryKey] then&lt;br /&gt;
            firstOccurrence[primaryKey] = #seenParams + 1&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        table.insert(seenParams, {&lt;br /&gt;
            key = key,&lt;br /&gt;
            value = value,&lt;br /&gt;
            normalizedKey = normalizedKey,&lt;br /&gt;
            primaryKey = primaryKey,&lt;br /&gt;
            position = firstOccurrence[primaryKey]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(seenParams, function(a, b) &lt;br /&gt;
        return a.position &amp;lt; b.position&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    for _, param in ipairs(seenParams) do&lt;br /&gt;
        local primaryKey = param.primaryKey&lt;br /&gt;
        &lt;br /&gt;
        if not processedAliases[primaryKey] then&lt;br /&gt;
            if not isEmpty(param.value) then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
                processedAliases[primaryKey] = true&lt;br /&gt;
            elseif not normalized[primaryKey] then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return normalized&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isNumeric(value)&lt;br /&gt;
    if type(value) == &amp;quot;number&amp;quot; then return true end&lt;br /&gt;
    if type(value) ~= &amp;quot;string&amp;quot; then return false end&lt;br /&gt;
    return tonumber(value) ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function shouldDisplayField(fieldName, value)&lt;br /&gt;
    if not isEmpty(value) then&lt;br /&gt;
        if POSITIVE_ONLY_FIELDS[fieldName] then&lt;br /&gt;
            return isPositive(value)&lt;br /&gt;
        end&lt;br /&gt;
        return true&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPBDIBValue(propertyId, args, options)&lt;br /&gt;
    if not args.qid or args.qid == &amp;quot;&amp;quot; then&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local success, result = pcall(function()&lt;br /&gt;
        return PBDIB._getValue({&lt;br /&gt;
            [1] = propertyId,&lt;br /&gt;
            qid = args.qid,&lt;br /&gt;
            format = options and options.format,&lt;br /&gt;
            fpbd = &amp;quot;ALL&amp;quot;&lt;br /&gt;
        })&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractNumber(str)&lt;br /&gt;
    if type(str) == &#039;number&#039; then &lt;br /&gt;
        return str &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if type(str) ~= &#039;string&#039; or str == &#039;&#039; then &lt;br /&gt;
        return nil &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local num = tonumber(str)&lt;br /&gt;
    if num then return num end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)[%s%a]*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)%a*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+,%d+)%s*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num:gsub(&amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)) end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local State = {}&lt;br /&gt;
&lt;br /&gt;
function State:new()&lt;br /&gt;
    local state = {}&lt;br /&gt;
    setmetatable(state, self)&lt;br /&gt;
    self.__index = self&lt;br /&gt;
    state.STYLES = STYLES&lt;br /&gt;
    return state&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:getRowStyle(index)&lt;br /&gt;
    return index % 2 == 1 and STYLES.ODD_ROW or STYLES.EVEN_ROW &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:splitByComma(str)&lt;br /&gt;
    if not str then return {} end&lt;br /&gt;
    local result = {}&lt;br /&gt;
    for value in str:gmatch(&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
        table.insert(result, mw.text.trim(value))&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatCategoryLink(value, prefix, displayText)&lt;br /&gt;
    if isEmpty(value) then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local normalized = mw.text.trim(value):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
    displayText = displayText or normalized&lt;br /&gt;
    &lt;br /&gt;
    local result = string.format(&amp;quot;[[:Category:%s%s|%s]]&amp;quot;,&lt;br /&gt;
        prefix,&lt;br /&gt;
        normalized,&lt;br /&gt;
        displayText&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        result = result .. string.format(&amp;quot;[[Category:%s%s]]&amp;quot;,&lt;br /&gt;
            prefix,&lt;br /&gt;
            normalized&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:collectNumberedParams(args, baseParam)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    local numbered = {}&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(args[baseParam]) then&lt;br /&gt;
        table.insert(values, {index = 0, value = args[baseParam]})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for param, value in pairs(args) do&lt;br /&gt;
        local index = param:match(&amp;quot;^&amp;quot; .. baseParam .. &amp;quot;(%d+)$&amp;quot;)&lt;br /&gt;
        if index and not isEmpty(value) then&lt;br /&gt;
            index = tonumber(index)&lt;br /&gt;
            if index and index &amp;gt; 0 and index &amp;lt; 100 then&lt;br /&gt;
                table.insert(values, {index = index, value = value})&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(values, function(a, b) return a.index &amp;lt; b.index end)&lt;br /&gt;
    &lt;br /&gt;
    local result = {}&lt;br /&gt;
    for _, item in ipairs(values) do&lt;br /&gt;
        table.insert(result, item.value)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatField(label, value, fieldName, index)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if POSITIVE_ONLY_FIELDS[fieldName] and not isPositive(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = self:getRowStyle(index)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatFeatureList(values, featureType)&lt;br /&gt;
    if not values or #values == 0 then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local displayValues = {}&lt;br /&gt;
    local addedCategories = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;foreskin&#039; then&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local feature = mw.text.trim(value):lower()&lt;br /&gt;
                local mapping = CategoryMapping.MAPPINGS[featureType][feature]&lt;br /&gt;
                &lt;br /&gt;
                if mapping then&lt;br /&gt;
                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                        mapping.category,&lt;br /&gt;
                        mapping.display&lt;br /&gt;
                    )&lt;br /&gt;
                    &lt;br /&gt;
                    if isMainNamespace then&lt;br /&gt;
                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                            mapping.category&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    return result&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;ass_type&#039; then&lt;br /&gt;
        local foundMappings = {}&lt;br /&gt;
        local hasMainType = false&lt;br /&gt;
        &lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                local isMainSize = mapping.priority &amp;gt;= 1 and mapping.priority &amp;lt;= 3&lt;br /&gt;
&lt;br /&gt;
                                if (not isMainSize or not hasMainType) and not addedCategories[mapping.category] then&lt;br /&gt;
                                    table.insert(foundMappings, mapping)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainSize then&lt;br /&gt;
                                        hasMainType = true&lt;br /&gt;
                                    end&lt;br /&gt;
                                end&lt;br /&gt;
                            end&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;
        table.sort(foundMappings, function(a, b)&lt;br /&gt;
            return a.priority &amp;lt; b.priority&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        for i, mapping in ipairs(foundMappings) do&lt;br /&gt;
            if i &amp;gt; 1 then&lt;br /&gt;
                table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                mapping.category,&lt;br /&gt;
                mapping.display&lt;br /&gt;
            )&lt;br /&gt;
            &lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                    mapping.category&lt;br /&gt;
                )&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            table.insert(displayValues, result)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
    else&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        local found = false&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                found = true&lt;br /&gt;
                                if not addedCategories[mapping.category] then&lt;br /&gt;
                                    if #displayValues &amp;gt; 0 then&lt;br /&gt;
                                        table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                                        mapping.category,&lt;br /&gt;
                                        mapping.display&lt;br /&gt;
                                    )&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainNamespace then&lt;br /&gt;
                                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                                            mapping.category&lt;br /&gt;
                                        )&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    table.insert(displayValues, result)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                end&lt;br /&gt;
                                break&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                        if found then break end&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;
    if #displayValues &amp;gt; 0 then&lt;br /&gt;
        return table.concat(displayValues)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    if not next(args) then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    args = normalizeKeys(args)&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(args.qid) then&lt;br /&gt;
        local success, entityId = pcall(mw.wikibase.getEntityIdForCurrentPage)&lt;br /&gt;
        if success and entityId then&lt;br /&gt;
            args.qid = entityId&lt;br /&gt;
        else&lt;br /&gt;
            args.qid = nil&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
    local state = State:new()&lt;br /&gt;
&lt;br /&gt;
    local personalSection, rowIndex&lt;br /&gt;
    local success, result1, result2 = pcall(function()&lt;br /&gt;
        return BioboxPersonal.formatPersonalSection(state, args, title)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        personalSection, rowIndex = result1, result2&lt;br /&gt;
    else&lt;br /&gt;
        personalSection = string.format(&#039;{| %s\n|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&#039;, &lt;br /&gt;
            STYLES.INFOBOX, &lt;br /&gt;
            STYLES.HEADER, &lt;br /&gt;
            title)&lt;br /&gt;
        rowIndex = 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local bodySection = &amp;quot;&amp;quot;&lt;br /&gt;
    success, result1 = pcall(function()&lt;br /&gt;
        return BioboxBody.formatBodySection(state, args, rowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        bodySection = result1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local personalPagesSection, ppRowIndex = {}, rowIndex&lt;br /&gt;
    success, result1, result2 = pcall(function()&lt;br /&gt;
        return BioboxPersonalPages.formatPersonalPagesSection(state, args, rowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        personalPagesSection, ppRowIndex = result1, result2&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local databasesSection, dbRowIndex = {}, ppRowIndex&lt;br /&gt;
    success, result1, result2 = pcall(function()&lt;br /&gt;
        return BioboxDatabases.formatDatabasesSection(state, args, ppRowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        databasesSection, dbRowIndex = result1, result2&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(personalSection) or not string.find(personalSection, &#039;{|%s+class=&amp;quot;infoboxnew&amp;quot;&#039;) then&lt;br /&gt;
        personalSection = string.format(&#039;{| %s\n|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&#039;, &lt;br /&gt;
            STYLES.INFOBOX, &lt;br /&gt;
            STYLES.HEADER, &lt;br /&gt;
            title)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local result = personalSection .. &#039;\n&#039; .. bodySection&lt;br /&gt;
    &lt;br /&gt;
    if #personalPagesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(personalPagesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #databasesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(databasesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not isEmpty(args.qid) then&lt;br /&gt;
        local success, pbcLink = pcall(mw.wikibase.getSitelink, args.qid)&lt;br /&gt;
        if success and pbcLink then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Pbd.svg | 45px | alt=&#039; .. args.qid .. &#039; | link=pbd:&#039; .. args.qid .. &#039;]]&amp;amp;nbsp;[[:pbd:&#039; .. args.qid .. &#039;|&#039; .. pbcLink .. &#039;]]&amp;amp;nbsp;([[:pbd:&#039; .. args.qid .. &#039;|&#039; .. args.qid .. &#039;]])&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local newFrame = {&lt;br /&gt;
            args = {&lt;br /&gt;
                qid = args.qid,&lt;br /&gt;
                wiki = &amp;quot;pbcimagerepo&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        local imageRepoLink&lt;br /&gt;
        success, imageRepoLink = pcall(function()&lt;br /&gt;
            return PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if success and imageRepoLink and imageRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Image-icon.svg | 18px | link=:&#039; .. imageRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. imageRepoLink .. &#039;| PBC Image Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        newFrame.args.wiki = &amp;quot;pbcvideorepo&amp;quot;&lt;br /&gt;
        local videoRepoLink&lt;br /&gt;
        success, videoRepoLink = pcall(function()&lt;br /&gt;
            return PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if success and videoRepoLink and videoRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Video-icon.svg | 18px | link=:&#039; .. videoRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. videoRepoLink .. &#039;| PBC Video Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    result = result .. &#039;\n|}&#039;&lt;br /&gt;
&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    if not isEmpty(args.qid) then&lt;br /&gt;
        success, categories = pcall(function() &lt;br /&gt;
            return BioboxPersonal.getPBDCategories(args)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if not success then&lt;br /&gt;
            categories = {}&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #categories &amp;gt; 0 then&lt;br /&gt;
        local categoryStrings = {}&lt;br /&gt;
        for _, category in ipairs(categories) do&lt;br /&gt;
            table.insert(categoryStrings, &#039;[[Category:&#039; .. category .. &#039;]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(categoryStrings, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2980</id>
		<title>Module:Biobox</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2980"/>
		<updated>2025-03-19T00:19:11Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
local CategoryMapping = require(&#039;Module:BioboxCategoryMapping&#039;)&lt;br /&gt;
local BioboxPersonal = require(&#039;Module:BioboxPersonal&#039;)&lt;br /&gt;
local BioboxBody = require(&#039;Module:BioboxBody&#039;)&lt;br /&gt;
local BioboxPersonalPages = require(&#039;Module:BioboxPersonalPages&#039;)&lt;br /&gt;
local BioboxDatabases = require(&#039;Module:BioboxDatabases&#039;)&lt;br /&gt;
&lt;br /&gt;
local ALIAS_TO_PRIMARY = {}&lt;br /&gt;
do&lt;br /&gt;
    for primary, aliases in pairs(CategoryMapping.PARAM_ALIASES) do&lt;br /&gt;
        for _, alias in ipairs(aliases) do&lt;br /&gt;
            ALIAS_TO_PRIMARY[alias] = primary&lt;br /&gt;
        end&lt;br /&gt;
        ALIAS_TO_PRIMARY[primary] = primary&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local STYLES = {&lt;br /&gt;
    INFOBOX = &#039;class=&amp;quot;infoboxnew&amp;quot; align=&amp;quot;left&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; font-size:88%; line-height:1.5em; white-space:normal;&amp;quot;&#039;,&lt;br /&gt;
    HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:112%;&amp;quot;&#039;,&lt;br /&gt;
    LABEL = &#039;width:40%; padding-left:0.1em; overflow-wrap: break-word; font-weight:normal; text-align:left;&#039;,&lt;br /&gt;
    SECTION_HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:100%;&amp;quot;&#039;,&lt;br /&gt;
    ODD_ROW = &#039;background-color:#F7F7F7;&#039;,&lt;br /&gt;
    EVEN_ROW = &#039;background-color:white;&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isPositive(value)&lt;br /&gt;
    if isEmpty(value) then return false end&lt;br /&gt;
    value = tostring(value):lower()&lt;br /&gt;
    local positiveValues = {&lt;br /&gt;
        [&#039;yes&#039;] = true,&lt;br /&gt;
        [&#039;y&#039;] = true,&lt;br /&gt;
        [&#039;ya&#039;] = true,&lt;br /&gt;
        [&#039;yep&#039;] = true,&lt;br /&gt;
        [&#039;true&#039;] = true,&lt;br /&gt;
        [&#039;1&#039;] = true&lt;br /&gt;
    }&lt;br /&gt;
    return positiveValues[value] or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local POSITIVE_ONLY_FIELDS = {&lt;br /&gt;
    [&#039;tattoo&#039;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function normalizeKeys(args)&lt;br /&gt;
    local normalized = {}&lt;br /&gt;
    local seenParams = {}&lt;br /&gt;
    local processedAliases = {}&lt;br /&gt;
    local firstOccurrence = {}&lt;br /&gt;
    &lt;br /&gt;
    for key, value in pairs(args) do&lt;br /&gt;
        local normalizedKey = tostring(key):gsub(&amp;quot; &amp;quot;, &amp;quot;_&amp;quot;):lower()&lt;br /&gt;
        local primaryKey = ALIAS_TO_PRIMARY[normalizedKey] or normalizedKey&lt;br /&gt;
        &lt;br /&gt;
        if not firstOccurrence[primaryKey] then&lt;br /&gt;
            firstOccurrence[primaryKey] = #seenParams + 1&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        table.insert(seenParams, {&lt;br /&gt;
            key = key,&lt;br /&gt;
            value = value,&lt;br /&gt;
            normalizedKey = normalizedKey,&lt;br /&gt;
            primaryKey = primaryKey,&lt;br /&gt;
            position = firstOccurrence[primaryKey]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(seenParams, function(a, b) &lt;br /&gt;
        return a.position &amp;lt; b.position&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    for _, param in ipairs(seenParams) do&lt;br /&gt;
        local primaryKey = param.primaryKey&lt;br /&gt;
        &lt;br /&gt;
        if not processedAliases[primaryKey] then&lt;br /&gt;
            if not isEmpty(param.value) then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
                processedAliases[primaryKey] = true&lt;br /&gt;
            elseif not normalized[primaryKey] then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return normalized&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isNumeric(value)&lt;br /&gt;
    if type(value) == &amp;quot;number&amp;quot; then return true end&lt;br /&gt;
    if type(value) ~= &amp;quot;string&amp;quot; then return false end&lt;br /&gt;
    return tonumber(value) ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function shouldDisplayField(fieldName, value)&lt;br /&gt;
    if not isEmpty(value) then&lt;br /&gt;
        if POSITIVE_ONLY_FIELDS[fieldName] then&lt;br /&gt;
            return isPositive(value)&lt;br /&gt;
        end&lt;br /&gt;
        return true&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPBDIBValue(propertyId, args, options)&lt;br /&gt;
    if not args.qid or args.qid == &amp;quot;&amp;quot; then&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local success, result = pcall(function()&lt;br /&gt;
        return PBDIB._getValue({&lt;br /&gt;
            [1] = propertyId,&lt;br /&gt;
            qid = args.qid,&lt;br /&gt;
            format = options and options.format,&lt;br /&gt;
            fpbd = &amp;quot;ALL&amp;quot;&lt;br /&gt;
        })&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractNumber(str)&lt;br /&gt;
    if type(str) == &#039;number&#039; then &lt;br /&gt;
        return str &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if type(str) ~= &#039;string&#039; or str == &#039;&#039; then &lt;br /&gt;
        return nil &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local num = tonumber(str)&lt;br /&gt;
    if num then return num end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)[%s%a]*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)%a*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+,%d+)%s*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num:gsub(&amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)) end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local State = {}&lt;br /&gt;
&lt;br /&gt;
function State:new()&lt;br /&gt;
    local state = {}&lt;br /&gt;
    setmetatable(state, self)&lt;br /&gt;
    self.__index = self&lt;br /&gt;
    state.STYLES = STYLES&lt;br /&gt;
    return state&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:getRowStyle(index)&lt;br /&gt;
    return index % 2 == 1 and STYLES.ODD_ROW or STYLES.EVEN_ROW &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:splitByComma(str)&lt;br /&gt;
    if not str then return {} end&lt;br /&gt;
    local result = {}&lt;br /&gt;
    for value in str:gmatch(&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
        table.insert(result, mw.text.trim(value))&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatCategoryLink(value, prefix, displayText)&lt;br /&gt;
    if isEmpty(value) then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local normalized = mw.text.trim(value):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
    displayText = displayText or normalized&lt;br /&gt;
    &lt;br /&gt;
    local result = string.format(&amp;quot;[[:Category:%s%s|%s]]&amp;quot;,&lt;br /&gt;
        prefix,&lt;br /&gt;
        normalized,&lt;br /&gt;
        displayText&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        result = result .. string.format(&amp;quot;[[Category:%s%s]]&amp;quot;,&lt;br /&gt;
            prefix,&lt;br /&gt;
            normalized&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:collectNumberedParams(args, baseParam)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    local numbered = {}&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(args[baseParam]) then&lt;br /&gt;
        table.insert(values, {index = 0, value = args[baseParam]})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for param, value in pairs(args) do&lt;br /&gt;
        local index = param:match(&amp;quot;^&amp;quot; .. baseParam .. &amp;quot;(%d+)$&amp;quot;)&lt;br /&gt;
        if index and not isEmpty(value) then&lt;br /&gt;
            index = tonumber(index)&lt;br /&gt;
            if index and index &amp;gt; 0 and index &amp;lt; 100 then&lt;br /&gt;
                table.insert(values, {index = index, value = value})&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(values, function(a, b) return a.index &amp;lt; b.index end)&lt;br /&gt;
    &lt;br /&gt;
    local result = {}&lt;br /&gt;
    for _, item in ipairs(values) do&lt;br /&gt;
        table.insert(result, item.value)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatField(label, value, fieldName, index)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if POSITIVE_ONLY_FIELDS[fieldName] and not isPositive(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = self:getRowStyle(index)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatFeatureList(values, featureType)&lt;br /&gt;
    if not values or #values == 0 then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local displayValues = {}&lt;br /&gt;
    local addedCategories = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;foreskin&#039; then&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local feature = mw.text.trim(value):lower()&lt;br /&gt;
                local mapping = CategoryMapping.MAPPINGS[featureType][feature]&lt;br /&gt;
                &lt;br /&gt;
                if mapping then&lt;br /&gt;
                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                        mapping.category,&lt;br /&gt;
                        mapping.display&lt;br /&gt;
                    )&lt;br /&gt;
                    &lt;br /&gt;
                    if isMainNamespace then&lt;br /&gt;
                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                            mapping.category&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    return result&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;ass_type&#039; then&lt;br /&gt;
        local foundMappings = {}&lt;br /&gt;
        local hasMainType = false&lt;br /&gt;
        &lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                local isMainSize = mapping.priority &amp;gt;= 1 and mapping.priority &amp;lt;= 3&lt;br /&gt;
&lt;br /&gt;
                                if (not isMainSize or not hasMainType) and not addedCategories[mapping.category] then&lt;br /&gt;
                                    table.insert(foundMappings, mapping)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainSize then&lt;br /&gt;
                                        hasMainType = true&lt;br /&gt;
                                    end&lt;br /&gt;
                                end&lt;br /&gt;
                            end&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;
        table.sort(foundMappings, function(a, b)&lt;br /&gt;
            return a.priority &amp;lt; b.priority&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        for i, mapping in ipairs(foundMappings) do&lt;br /&gt;
            if i &amp;gt; 1 then&lt;br /&gt;
                table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                mapping.category,&lt;br /&gt;
                mapping.display&lt;br /&gt;
            )&lt;br /&gt;
            &lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                    mapping.category&lt;br /&gt;
                )&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            table.insert(displayValues, result)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
    else&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        local found = false&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                found = true&lt;br /&gt;
                                if not addedCategories[mapping.category] then&lt;br /&gt;
                                    if #displayValues &amp;gt; 0 then&lt;br /&gt;
                                        table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                                        mapping.category,&lt;br /&gt;
                                        mapping.display&lt;br /&gt;
                                    )&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainNamespace then&lt;br /&gt;
                                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                                            mapping.category&lt;br /&gt;
                                        )&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    table.insert(displayValues, result)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                end&lt;br /&gt;
                                break&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                        if found then break end&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;
    if #displayValues &amp;gt; 0 then&lt;br /&gt;
        return table.concat(displayValues)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    if not next(args) then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    args = normalizeKeys(args)&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(args.qid) then&lt;br /&gt;
        local success, entityId = pcall(mw.wikibase.getEntityIdForCurrentPage)&lt;br /&gt;
        if success and entityId then&lt;br /&gt;
            args.qid = entityId&lt;br /&gt;
        else&lt;br /&gt;
            args.qid = nil&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
    local state = State:new()&lt;br /&gt;
&lt;br /&gt;
    local personalSection, rowIndex&lt;br /&gt;
    local success, result = pcall(function()&lt;br /&gt;
        return BioboxPersonal.formatPersonalSection(state, args, title)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        personalSection, rowIndex = result, select(2, result)&lt;br /&gt;
    else&lt;br /&gt;
        personalSection, rowIndex = &amp;quot;&amp;quot;, 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local bodySection = &amp;quot;&amp;quot;&lt;br /&gt;
    success, result = pcall(function()&lt;br /&gt;
        return BioboxBody.formatBodySection(state, args, rowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        bodySection = result&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local personalPagesSection, ppRowIndex = {}, rowIndex&lt;br /&gt;
    success, result = pcall(function()&lt;br /&gt;
        return BioboxPersonalPages.formatPersonalPagesSection(state, args, rowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        personalPagesSection, ppRowIndex = result, select(2, result)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local databasesSection, dbRowIndex = {}, ppRowIndex&lt;br /&gt;
    success, result = pcall(function()&lt;br /&gt;
        return BioboxDatabases.formatDatabasesSection(state, args, ppRowIndex)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    if success then&lt;br /&gt;
        databasesSection, dbRowIndex = result, select(2, result)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(personalSection) then&lt;br /&gt;
        personalSection = string.format(&#039;{| %s\n|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&#039;, &lt;br /&gt;
            STYLES.INFOBOX, &lt;br /&gt;
            STYLES.HEADER, &lt;br /&gt;
            title)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local result = personalSection .. &#039;\n&#039; .. bodySection&lt;br /&gt;
    &lt;br /&gt;
    if #personalPagesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(personalPagesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #databasesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(databasesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not isEmpty(args.qid) then&lt;br /&gt;
        local success, pbcLink = pcall(mw.wikibase.getSitelink, args.qid)&lt;br /&gt;
        if success and pbcLink then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Pbd.svg | 45px | alt=&#039; .. args.qid .. &#039; | link=pbd:&#039; .. args.qid .. &#039;]]&amp;amp;nbsp;[[:pbd:&#039; .. args.qid .. &#039;|&#039; .. pbcLink .. &#039;]]&amp;amp;nbsp;([[:pbd:&#039; .. args.qid .. &#039;|&#039; .. args.qid .. &#039;]])&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local newFrame = {&lt;br /&gt;
            args = {&lt;br /&gt;
                qid = args.qid,&lt;br /&gt;
                wiki = &amp;quot;pbcimagerepo&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        local imageRepoLink&lt;br /&gt;
        success, imageRepoLink = pcall(function()&lt;br /&gt;
            return PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if success and imageRepoLink and imageRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Image-icon.svg | 18px | link=:&#039; .. imageRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. imageRepoLink .. &#039;| PBC Image Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        newFrame.args.wiki = &amp;quot;pbcvideorepo&amp;quot;&lt;br /&gt;
        local videoRepoLink&lt;br /&gt;
        success, videoRepoLink = pcall(function()&lt;br /&gt;
            return PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if success and videoRepoLink and videoRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Video-icon.svg | 18px | link=:&#039; .. videoRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. videoRepoLink .. &#039;| PBC Video Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    result = result .. &#039;\n|}&#039;&lt;br /&gt;
&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    if not isEmpty(args.qid) then&lt;br /&gt;
        success, categories = pcall(function() &lt;br /&gt;
            return BioboxPersonal.getPBDCategories(args)&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if not success then&lt;br /&gt;
            categories = {}&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #categories &amp;gt; 0 then&lt;br /&gt;
        local categoryStrings = {}&lt;br /&gt;
        for _, category in ipairs(categories) do&lt;br /&gt;
            table.insert(categoryStrings, &#039;[[Category:&#039; .. category .. &#039;]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(categoryStrings, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxSharing/sites&amp;diff=2979</id>
		<title>Module:BioboxSharing/sites</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxSharing/sites&amp;diff=2979"/>
		<updated>2025-03-19T00:11:26Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local sites = {     faphouse_model = {         name = &amp;quot;faphouse_model&amp;quot;,         paramBase = &amp;quot;faphouse-model&amp;quot;,         pbdProps = {&amp;quot;P789&amp;quot;},         urlFormat = &amp;quot;https://faphouse.com/gay/models/%s&amp;quot;,         suffix = &amp;quot;?utm_campaign=ai.LUY&amp;quot;,         abbr = &amp;quot;FapHouse:&amp;quot;,         label = &amp;quot;FapHouse&amp;quot;,         category = &amp;quot;Category:FapHouse&amp;quot;,         maxCount = 4     },     faphouse_pornstar = {         name = &amp;quot;faphouse_pornstar&amp;quot;,         paramBase = &amp;quot;faphouse-pornstar&amp;quot;,         pb...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local sites = {&lt;br /&gt;
    faphouse_model = {&lt;br /&gt;
        name = &amp;quot;faphouse_model&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;faphouse-model&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P789&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://faphouse.com/gay/models/%s&amp;quot;,&lt;br /&gt;
        suffix = &amp;quot;?utm_campaign=ai.LUY&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;FapHouse:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;FapHouse&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Category:FapHouse&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    faphouse_pornstar = {&lt;br /&gt;
        name = &amp;quot;faphouse_pornstar&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;faphouse-pornstar&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P788&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://faphouse.com/gay/pornstars/%s&amp;quot;,&lt;br /&gt;
        suffix = &amp;quot;?utm_campaign=ai.LUY&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;FapHouse:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;FapHouse&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Category:FapHouse&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    xnxx = {&lt;br /&gt;
        name = &amp;quot;xnxx&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;xnxx&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P777&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://www.xnxx.gold/pornstar/%s&amp;quot;,&lt;br /&gt;
        suffix = &amp;quot;?sxcaf=TARTFSJC35&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;XNXX:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;XNXX&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Category:XNXX&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    xvideos = {&lt;br /&gt;
        name = &amp;quot;xvideos&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;xvideos&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P706&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://www.xvideos.com/pornstars/%s/gay&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;XVideos:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;XVideos&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Category:XVideos&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    sheer = {&lt;br /&gt;
        name = &amp;quot;sheer&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;sheer&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P784&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://www.sheer.com/%s&amp;quot;,&lt;br /&gt;
        suffix = &amp;quot;?aff=TARTFSJC35&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;Sheer:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Sheer&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Category:Sheer&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local siteOrder = {&lt;br /&gt;
    &amp;quot;faphouse_model&amp;quot;,&lt;br /&gt;
    &amp;quot;faphouse_pornstar&amp;quot;,&lt;br /&gt;
    &amp;quot;xnxx&amp;quot;,&lt;br /&gt;
    &amp;quot;xvideos&amp;quot;,&lt;br /&gt;
    &amp;quot;sheer&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
    sites = sites,&lt;br /&gt;
    siteOrder = siteOrder&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxSharing&amp;diff=2978</id>
		<title>Module:BioboxSharing</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxSharing&amp;diff=2978"/>
		<updated>2025-03-19T00:11:11Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local sitesModule = require(&amp;#039;Module:BioboxSharing/sites&amp;#039;) local sites = sitesModule.sites local siteOrder = sitesModule.siteOrder  local PBD = require(&amp;#039;Module:PBD&amp;#039;) local PBDIB = require(&amp;#039;Module:PornBaseDataIB&amp;#039;)  local function isEmpty(value)     return value == nil or value == &amp;#039;&amp;#039; end  local function formatField(state, label, value, fieldName, rowIndex, category)     if isEmpty(value) then         return &amp;#039;&amp;#039;     end          local rowStyle = state:getRowStyl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local sitesModule = require(&#039;Module:BioboxSharing/sites&#039;)&lt;br /&gt;
local sites = sitesModule.sites&lt;br /&gt;
local siteOrder = sitesModule.siteOrder&lt;br /&gt;
&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatField(state, label, value, fieldName, rowIndex, category)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = state:getRowStyle(rowIndex)&lt;br /&gt;
    local categoryCode = &#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
    if category and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        categoryCode = string.format(&#039;[[%s]]&#039;, category)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left; max-width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;&amp;quot; | %s%s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        state.STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value,&lt;br /&gt;
        categoryCode)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function collectParametersWithSuffixes(args, paramBase, maxCount)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    maxCount = tonumber(maxCount) or 4&lt;br /&gt;
&lt;br /&gt;
    for i = 1, maxCount do&lt;br /&gt;
        local suffix = i &amp;gt; 1 and i or &amp;quot;&amp;quot;&lt;br /&gt;
        local paramName = paramBase .. suffix&lt;br /&gt;
        if not isEmpty(args[paramName]) then&lt;br /&gt;
            table.insert(values, args[paramName])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return values&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatSite(state, args, siteConfig, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local values = {}&lt;br /&gt;
&lt;br /&gt;
    if siteConfig.paramBase then&lt;br /&gt;
        values = collectParametersWithSuffixes(&lt;br /&gt;
            args,&lt;br /&gt;
            siteConfig.paramBase,&lt;br /&gt;
            siteConfig.maxCount&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #values == 0 and args.qid then&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        if siteConfig.pbdProps then&lt;br /&gt;
            for _, pbdProp in ipairs(siteConfig.pbdProps) do&lt;br /&gt;
                if entity and entity.claims and entity.claims[pbdProp] then&lt;br /&gt;
                    for _, statement in ipairs(entity.claims[pbdProp]) do&lt;br /&gt;
                        if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                           statement.mainsnak.datavalue then&lt;br /&gt;
                            local id&lt;br /&gt;
                            if statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value&lt;br /&gt;
                            elseif statement.mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                            end&lt;br /&gt;
                            &lt;br /&gt;
                            if id then&lt;br /&gt;
                                table.insert(values, {id = id, pbdProp = pbdProp})&lt;br /&gt;
                            end&lt;br /&gt;
                        end&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;
    if #values &amp;gt; 0 then&lt;br /&gt;
        local displayValues = {}&lt;br /&gt;
        &lt;br /&gt;
        for _, entry in ipairs(values) do&lt;br /&gt;
            local id, pbdProp&lt;br /&gt;
            if type(entry) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                id = entry.id&lt;br /&gt;
                pbdProp = entry.pbdProp&lt;br /&gt;
            else&lt;br /&gt;
                id = entry&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local urlFormat = siteConfig.urlFormat&lt;br /&gt;
            local url = urlFormat:format(id)&lt;br /&gt;
            &lt;br /&gt;
            if siteConfig.suffix then&lt;br /&gt;
                url = url .. siteConfig.suffix&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local displayValue = string.format(&#039;[%s %s]&#039;, url, id)&lt;br /&gt;
            table.insert(displayValues, displayValue)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local combinedDisplay = table.concat(displayValues, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
        local label&lt;br /&gt;
        if siteConfig.labelFunc then&lt;br /&gt;
            label = siteConfig.labelFunc()&lt;br /&gt;
        else&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            label = frame:expandTemplate{ title = &#039;abbr&#039;, args = { siteConfig.abbr, siteConfig.label } }&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = formatField(state, label, combinedDisplay, siteConfig.name, rowIndex, siteConfig.category)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatFapHouse(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local faphouse_model = sites.faphouse_model&lt;br /&gt;
    local faphouse_pornstar = sites.faphouse_pornstar&lt;br /&gt;
    &lt;br /&gt;
    local model_values = {}&lt;br /&gt;
    local pornstar_values = {}&lt;br /&gt;
    &lt;br /&gt;
    if faphouse_model.paramBase then&lt;br /&gt;
        model_values = collectParametersWithSuffixes(&lt;br /&gt;
            args,&lt;br /&gt;
            faphouse_model.paramBase,&lt;br /&gt;
            faphouse_model.maxCount&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if faphouse_pornstar.paramBase then&lt;br /&gt;
        pornstar_values = collectParametersWithSuffixes(&lt;br /&gt;
            args,&lt;br /&gt;
            faphouse_pornstar.paramBase,&lt;br /&gt;
            faphouse_pornstar.maxCount&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #model_values == 0 and #pornstar_values == 0 and args.qid then&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        &lt;br /&gt;
        if faphouse_model.pbdProps and entity and entity.claims then&lt;br /&gt;
            for _, pbdProp in ipairs(faphouse_model.pbdProps) do&lt;br /&gt;
                if entity.claims[pbdProp] then&lt;br /&gt;
                    for _, statement in ipairs(entity.claims[pbdProp]) do&lt;br /&gt;
                        if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                           statement.mainsnak.datavalue then&lt;br /&gt;
                            local id&lt;br /&gt;
                            if statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value&lt;br /&gt;
                            elseif statement.mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                            end&lt;br /&gt;
                            &lt;br /&gt;
                            if id then&lt;br /&gt;
                                table.insert(model_values, {id = id, pbdProp = pbdProp, type = &amp;quot;model&amp;quot;})&lt;br /&gt;
                            end&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;
        if faphouse_pornstar.pbdProps and entity and entity.claims then&lt;br /&gt;
            for _, pbdProp in ipairs(faphouse_pornstar.pbdProps) do&lt;br /&gt;
                if entity.claims[pbdProp] then&lt;br /&gt;
                    for _, statement in ipairs(entity.claims[pbdProp]) do&lt;br /&gt;
                        if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                           statement.mainsnak.datavalue then&lt;br /&gt;
                            local id&lt;br /&gt;
                            if statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value&lt;br /&gt;
                            elseif statement.mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                            end&lt;br /&gt;
                            &lt;br /&gt;
                            if id then&lt;br /&gt;
                                table.insert(pornstar_values, {id = id, pbdProp = pbdProp, type = &amp;quot;pornstar&amp;quot;})&lt;br /&gt;
                            end&lt;br /&gt;
                        end&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;
    if #model_values &amp;gt; 0 or #pornstar_values &amp;gt; 0 then&lt;br /&gt;
        local displayValues = {}&lt;br /&gt;
        &lt;br /&gt;
        for _, entry in ipairs(model_values) do&lt;br /&gt;
            local id, pbdProp, entryType&lt;br /&gt;
            if type(entry) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                id = entry.id&lt;br /&gt;
                pbdProp = entry.pbdProp&lt;br /&gt;
                entryType = entry.type&lt;br /&gt;
            else&lt;br /&gt;
                id = entry&lt;br /&gt;
                entryType = &amp;quot;model&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local urlFormat = faphouse_model.urlFormat&lt;br /&gt;
            local url = urlFormat:format(id)&lt;br /&gt;
            &lt;br /&gt;
            if faphouse_model.suffix then&lt;br /&gt;
                url = url .. faphouse_model.suffix&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local displayValue = string.format(&#039;[%s %s]&#039;, url, id)&lt;br /&gt;
            table.insert(displayValues, displayValue)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        for _, entry in ipairs(pornstar_values) do&lt;br /&gt;
            local id, pbdProp, entryType&lt;br /&gt;
            if type(entry) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                id = entry.id&lt;br /&gt;
                pbdProp = entry.pbdProp&lt;br /&gt;
                entryType = entry.type&lt;br /&gt;
            else&lt;br /&gt;
                id = entry&lt;br /&gt;
                entryType = &amp;quot;pornstar&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local urlFormat = faphouse_pornstar.urlFormat&lt;br /&gt;
            local url = urlFormat:format(id)&lt;br /&gt;
            &lt;br /&gt;
            if faphouse_pornstar.suffix then&lt;br /&gt;
                url = url .. faphouse_pornstar.suffix&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local displayValue = string.format(&#039;[%s %s]&#039;, url, id)&lt;br /&gt;
            table.insert(displayValues, displayValue)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local combinedDisplay = table.concat(displayValues, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
        local label&lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        label = frame:expandTemplate{ title = &#039;abbr&#039;, args = { faphouse_model.abbr, faphouse_model.label } }&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = formatField(state, label, combinedDisplay, &amp;quot;faphouse&amp;quot;, rowIndex, faphouse_model.category)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatSharingSection(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local sharingSections = {}&lt;br /&gt;
    local hasAny = false&lt;br /&gt;
    &lt;br /&gt;
    local faphouseSection, newRowIndex = p.formatFapHouse(state, args, rowIndex)&lt;br /&gt;
    if #faphouseSection &amp;gt; 0 then&lt;br /&gt;
        hasAny = true&lt;br /&gt;
        for _, line in ipairs(faphouseSection) do&lt;br /&gt;
            sharingSections[#sharingSections + 1] = line&lt;br /&gt;
        end&lt;br /&gt;
        rowIndex = newRowIndex&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for _, siteName in ipairs(siteOrder) do&lt;br /&gt;
        if siteName ~= &amp;quot;faphouse_model&amp;quot; and siteName ~= &amp;quot;faphouse_pornstar&amp;quot; then&lt;br /&gt;
            local config = sites[siteName]&lt;br /&gt;
            if config then&lt;br /&gt;
                local siteSection, newRowIndex = p.formatSite(state, args, config, rowIndex)&lt;br /&gt;
                if #siteSection &amp;gt; 0 then&lt;br /&gt;
                    hasAny = true&lt;br /&gt;
                    for _, line in ipairs(siteSection) do&lt;br /&gt;
                        sharingSections[#sharingSections + 1] = line&lt;br /&gt;
                    end&lt;br /&gt;
                    rowIndex = newRowIndex&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if hasAny then&lt;br /&gt;
        section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;Porn sharing\&#039;\&#039;\&#039;&#039;, state.STYLES.SECTION_HEADER)&lt;br /&gt;
        for _, line in ipairs(sharingSections) do&lt;br /&gt;
            section[#section + 1] = line&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxUnits&amp;diff=2977</id>
		<title>Module:BioboxUnits</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxUnits&amp;diff=2977"/>
		<updated>2025-03-19T00:10:54Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local BioboxUnits = {}  local INCHES_PER_FOOT = 12 local CM_PER_FOOT = 30.48 local CM_PER_INCH = 2.54 local LBS_PER_KG = 2.204623  local function formatDecimal(num)     return string.format(&amp;quot;%.1f&amp;quot;, num) end  local function formatCategoryLink(category, display)     return string.format(&amp;#039;&amp;lt;span class=&amp;quot;white-link&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;, category, display) end  function BioboxUnits.extractNumber(str)     if type(str) == &amp;#039;number&amp;#039; then return str end     if type(str) ~= &amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local BioboxUnits = {}&lt;br /&gt;
&lt;br /&gt;
local INCHES_PER_FOOT = 12&lt;br /&gt;
local CM_PER_FOOT = 30.48&lt;br /&gt;
local CM_PER_INCH = 2.54&lt;br /&gt;
local LBS_PER_KG = 2.204623&lt;br /&gt;
&lt;br /&gt;
local function formatDecimal(num)&lt;br /&gt;
    return string.format(&amp;quot;%.1f&amp;quot;, num)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatCategoryLink(category, display)&lt;br /&gt;
    return string.format(&#039;&amp;lt;span class=&amp;quot;white-link&amp;quot;&amp;gt;[[:Category:%s|%s]]&amp;lt;/span&amp;gt;&#039;, category, display)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.extractNumber(str)&lt;br /&gt;
    if type(str) == &#039;number&#039; then return str end&lt;br /&gt;
    if type(str) ~= &#039;string&#039; or str == &#039;&#039; then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local num = tonumber(str)&lt;br /&gt;
    if num then return num end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)[%s%a]*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)%a*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+,%d+)%s*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num:gsub(&amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)) end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.cmToFeetInches(cm)&lt;br /&gt;
    local totalInches = cm / CM_PER_INCH&lt;br /&gt;
    local feet = math.floor(totalInches / INCHES_PER_FOOT)&lt;br /&gt;
    local inches = math.floor(totalInches - (feet * INCHES_PER_FOOT))&lt;br /&gt;
    return feet, inches&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.formatHeight(frame, cm, options)&lt;br /&gt;
    if type(cm) == &#039;string&#039; then&lt;br /&gt;
        cm = BioboxUnits.extractNumber(cm)&lt;br /&gt;
    end&lt;br /&gt;
    if not cm or cm == 0 then return &amp;quot;N/A&amp;quot; end&lt;br /&gt;
    &lt;br /&gt;
    local roundedCm = math.floor(cm)&lt;br /&gt;
    local feet, inches = BioboxUnits.cmToFeetInches(cm)&lt;br /&gt;
    &lt;br /&gt;
    local metricPart = formatCategoryLink(&lt;br /&gt;
        string.format(&amp;quot;Height %d cm&amp;quot;, roundedCm),&lt;br /&gt;
        string.format(&amp;quot;%s cm&amp;quot;, formatDecimal(cm))&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    local imperialPart = formatCategoryLink(&lt;br /&gt;
        string.format(&amp;quot;Height %d cm&amp;quot;, roundedCm),&lt;br /&gt;
        string.format(&amp;quot;%d ft %d in&amp;quot;, feet, inches)&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    local category = &amp;quot;&amp;quot;&lt;br /&gt;
    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        category = string.format(&amp;quot;[[Category:Height %d cm]]&amp;quot;, roundedCm)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&amp;quot;%s&amp;lt;br&amp;gt;(%s)%s&amp;quot;,&lt;br /&gt;
        metricPart,&lt;br /&gt;
        imperialPart,&lt;br /&gt;
        category)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.formatWeight(frame, kg, options)&lt;br /&gt;
    if type(kg) == &#039;string&#039; then&lt;br /&gt;
        kg = BioboxUnits.extractNumber(kg)&lt;br /&gt;
    end&lt;br /&gt;
    if not kg or kg == 0 then return &amp;quot;N/A&amp;quot; end&lt;br /&gt;
    &lt;br /&gt;
    local roundedKg = math.floor(kg)&lt;br /&gt;
    local lbs = math.floor(kg * LBS_PER_KG)&lt;br /&gt;
    &lt;br /&gt;
    local metricPart = formatCategoryLink(&lt;br /&gt;
        string.format(&amp;quot;Weight %d kg&amp;quot;, roundedKg),&lt;br /&gt;
        string.format(&amp;quot;%s kg&amp;quot;, formatDecimal(kg))&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    local imperialPart = formatCategoryLink(&lt;br /&gt;
        string.format(&amp;quot;Weight %d kg&amp;quot;, roundedKg),&lt;br /&gt;
        string.format(&amp;quot;%d lbs&amp;quot;, lbs)&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    local category = &amp;quot;&amp;quot;&lt;br /&gt;
    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        category = string.format(&amp;quot;[[Category:Weight %d kg]]&amp;quot;, roundedKg)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&amp;quot;%s&amp;lt;br&amp;gt;(%s)%s&amp;quot;,&lt;br /&gt;
        metricPart,&lt;br /&gt;
        imperialPart,&lt;br /&gt;
        category)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.isValidHeight(value)&lt;br /&gt;
    local num = BioboxUnits.extractNumber(value)&lt;br /&gt;
    return num and num &amp;gt; 0 and num &amp;lt; 300&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.isValidWeight(value)&lt;br /&gt;
    local num = BioboxUnits.extractNumber(value)&lt;br /&gt;
    return num and num &amp;gt; 0 and num &amp;lt; 500&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function toInches(cm)&lt;br /&gt;
    return cm / CM_PER_INCH&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function toCentimeters(inches)&lt;br /&gt;
    return inches * CM_PER_INCH&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatPenisSizeNumber(value)&lt;br /&gt;
    value = math.floor(value * 10 + 0.5) / 10&lt;br /&gt;
    return value % 1 == 0 and string.format(&amp;quot;%.0f&amp;quot;, value) or string.format(&amp;quot;%.1f&amp;quot;, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatPenisSizeLink(value, unit)&lt;br /&gt;
    if unit == &amp;quot;in&amp;quot; then&lt;br /&gt;
        return string.format(&#039;[[:Category:Penis size %s inches|%s in]]&#039;, value, value)&lt;br /&gt;
    else&lt;br /&gt;
        return string.format(&#039;[[:Category:Penis size %s cm|%s cm]]&#039;, value, value)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function applyPenisSizeOption(value, option, tag)&lt;br /&gt;
    return (option == &amp;quot;yes&amp;quot; or option == &amp;quot;y&amp;quot;) and string.format(tag, value) or value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BioboxUnits.formatPenisSize(frame)&lt;br /&gt;
    local input = frame.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local categoryOption = frame.args[&amp;quot;category&amp;quot;] or &amp;quot;yes&amp;quot;&lt;br /&gt;
    local breakOption = frame.args[&amp;quot;break&amp;quot;] or &amp;quot;no&amp;quot;&lt;br /&gt;
    local linkspanOption = frame.args[&amp;quot;linkspan&amp;quot;] or &amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    input = string.lower(input:gsub(&amp;quot;%s+&amp;quot;, &amp;quot;&amp;quot;)):gsub(&amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local cm, inches&lt;br /&gt;
&lt;br /&gt;
    if string.match(input, &amp;quot;in$&amp;quot;) or string.match(input, &amp;quot;inches$&amp;quot;) then&lt;br /&gt;
        inches = tonumber(string.match(input, &amp;quot;%d+%.?%d*&amp;quot;))&lt;br /&gt;
        cm = toCentimeters(inches)&lt;br /&gt;
    else&lt;br /&gt;
        cm = tonumber(string.match(input, &amp;quot;%d+%.?%d*&amp;quot;))&lt;br /&gt;
        if cm == nil then return &amp;quot;&amp;quot; end&lt;br /&gt;
        inches = toInches(cm)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local formattedCm = formatPenisSizeNumber(cm)&lt;br /&gt;
    local formattedInches = formatPenisSizeNumber(inches)&lt;br /&gt;
&lt;br /&gt;
    local linkCm = formatPenisSizeLink(formattedCm, &amp;quot;cm&amp;quot;)&lt;br /&gt;
    local linkInches = formatPenisSizeLink(formattedInches, &amp;quot;in&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    linkCm = applyPenisSizeOption(linkCm, linkspanOption, &#039;&amp;lt;span class=&amp;quot;white-link&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;)&lt;br /&gt;
    linkInches = applyPenisSizeOption(linkInches, linkspanOption, &#039;&amp;lt;span class=&amp;quot;white-link&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
    local breakTag = applyPenisSizeOption(&amp;quot;&amp;quot;, breakOption, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if categoryOption == &amp;quot;no&amp;quot; then&lt;br /&gt;
        return linkCm .. breakTag .. &amp;quot; (&amp;quot; .. linkInches .. &amp;quot;)&amp;quot;&lt;br /&gt;
    elseif mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        return &amp;quot;[[Category:Penis size &amp;quot; .. formattedCm .. &amp;quot; cm]]&amp;quot; .. linkCm .. breakTag .. &amp;quot; (&amp;quot; .. linkInches .. &amp;quot;)&amp;quot; .. &amp;quot;[[Category:Penis size &amp;quot; .. formattedInches .. &amp;quot; inches]]&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        return linkCm .. breakTag .. &amp;quot; (&amp;quot; .. linkInches .. &amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return BioboxUnits&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:Birth_date_and_age&amp;diff=2976</id>
		<title>Module:Birth date and age</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:Birth_date_and_age&amp;diff=2976"/>
		<updated>2025-03-19T00:10:26Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local function pad2digit(num)     return string.format(&amp;quot;%02d&amp;quot;, num) end  local function getZodiacSign(day, month)     local zodiacSigns = {         { name = &amp;quot;Capricorn&amp;quot;,     start = { day = 22, month = 12 }, end_ = { day = 19, month = 1 } },         { name = &amp;quot;Aquarius&amp;quot;,      start = { day = 20, month = 1  }, end_ = { day = 18, month = 2 } },         { name = &amp;quot;Pisces&amp;quot;,        start = { day = 19, month = 2  }, end_ = { day = 20, month = 3 } },         { name...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function pad2digit(num)&lt;br /&gt;
    return string.format(&amp;quot;%02d&amp;quot;, num)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getZodiacSign(day, month)&lt;br /&gt;
    local zodiacSigns = {&lt;br /&gt;
        { name = &amp;quot;Capricorn&amp;quot;,     start = { day = 22, month = 12 }, end_ = { day = 19, month = 1 } },&lt;br /&gt;
        { name = &amp;quot;Aquarius&amp;quot;,      start = { day = 20, month = 1  }, end_ = { day = 18, month = 2 } },&lt;br /&gt;
        { name = &amp;quot;Pisces&amp;quot;,        start = { day = 19, month = 2  }, end_ = { day = 20, month = 3 } },&lt;br /&gt;
        { name = &amp;quot;Aries&amp;quot;,         start = { day = 21, month = 3  }, end_ = { day = 19, month = 4 } },&lt;br /&gt;
        { name = &amp;quot;Taurus&amp;quot;,        start = { day = 20, month = 4  }, end_ = { day = 20, month = 5 } },&lt;br /&gt;
        { name = &amp;quot;Gemini&amp;quot;,        start = { day = 21, month = 5  }, end_ = { day = 20, month = 6 } },&lt;br /&gt;
        { name = &amp;quot;Cancer&amp;quot;,        start = { day = 21, month = 6  }, end_ = { day = 22, month = 7 } },&lt;br /&gt;
        { name = &amp;quot;Leo&amp;quot;,           start = { day = 23, month = 7  }, end_ = { day = 22, month = 8 } },&lt;br /&gt;
        { name = &amp;quot;Virgo&amp;quot;,         start = { day = 23, month = 8  }, end_ = { day = 22, month = 9 } },&lt;br /&gt;
        { name = &amp;quot;Libra&amp;quot;,         start = { day = 23, month = 9  }, end_ = { day = 22, month = 10} },&lt;br /&gt;
        { name = &amp;quot;Scorpio&amp;quot;,       start = { day = 23, month = 10 }, end_ = { day = 21, month = 11} },&lt;br /&gt;
        { name = &amp;quot;Sagittarius&amp;quot;,   start = { day = 22, month = 11 }, end_ = { day = 21, month = 12} },&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, sign in ipairs(zodiacSigns) do&lt;br /&gt;
        if&lt;br /&gt;
            (month == sign.start.month and day &amp;gt;= sign.start.day)&lt;br /&gt;
            or&lt;br /&gt;
            (month == sign.end_.month and day &amp;lt;= sign.end_.day)&lt;br /&gt;
        then&lt;br /&gt;
            return sign.name&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function calculateAge(year, month, day)&lt;br /&gt;
    local currentYear  = tonumber(os.date(&#039;%Y&#039;))&lt;br /&gt;
    local currentMonth = tonumber(os.date(&#039;%m&#039;))&lt;br /&gt;
    local currentDay   = tonumber(os.date(&#039;%d&#039;))&lt;br /&gt;
&lt;br /&gt;
    local age = currentYear - year&lt;br /&gt;
    if (currentMonth &amp;lt; month) or (currentMonth == month and currentDay &amp;lt; day) then&lt;br /&gt;
        age = age - 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return age&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:Birth date and age&#039;})&lt;br /&gt;
    &lt;br /&gt;
    local year  = tonumber(args[1] or args.year)&lt;br /&gt;
    local month = tonumber(args[2] or args.month)&lt;br /&gt;
    local day   = tonumber(args[3] or args.day)&lt;br /&gt;
    &lt;br /&gt;
    if not day or not month then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local output = &amp;quot;&amp;quot;&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    &lt;br /&gt;
    local function addZodiac(day, month)&lt;br /&gt;
        local zodiacSign = getZodiacSign(day, month)&lt;br /&gt;
        if zodiacSign then&lt;br /&gt;
            local zodiacCategory = (mw.title.getCurrentTitle().namespace == 0)&lt;br /&gt;
                and string.format(&#039;[[Category:%s]]&#039;, zodiacSign)&lt;br /&gt;
                or &#039;&#039;&lt;br /&gt;
            &lt;br /&gt;
            return string.format(&lt;br /&gt;
                &#039;&amp;lt;br&amp;gt;Astrology: [[File:%s.svg|13px|link=Category:%s|%s|class=noviewer]]%s&#039;,&lt;br /&gt;
                zodiacSign, zodiacSign, zodiacSign, zodiacCategory&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if year then&lt;br /&gt;
        local monthName = os.date(&#039;%B&#039;, os.time({year = year, month = month, day = day}))&lt;br /&gt;
        &lt;br /&gt;
        local birthDate = string.format(&lt;br /&gt;
            &amp;quot;[[:Category:%s %s birthdays|%s %s]] [[:Category:%s births|%s]]&amp;quot;,&lt;br /&gt;
            monthName, day, day, monthName, year, year&lt;br /&gt;
        )&lt;br /&gt;
        local age = calculateAge(year, month, day)&lt;br /&gt;
        local ageString = string.format(&amp;quot; (age&amp;amp;nbsp;%d)&amp;quot;, age)&lt;br /&gt;
        &lt;br /&gt;
        output = birthDate .. ageString&lt;br /&gt;
        &lt;br /&gt;
        output = output .. addZodiac(day, month)&lt;br /&gt;
    &lt;br /&gt;
    else&lt;br /&gt;
        local ok, monthName = pcall(function()&lt;br /&gt;
            return os.date(&#039;%B&#039;, os.time({year = 2000, month = month, day = day}))&lt;br /&gt;
        end)&lt;br /&gt;
        if not ok or not monthName then&lt;br /&gt;
            return &#039;&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        categories[#categories + 1] = string.format(&amp;quot;[[Category:%s %s birthdays]]&amp;quot;, monthName, day)&lt;br /&gt;
        categories[#categories + 1] = &amp;quot;[[Category:Birth year needed]]&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        output = string.format(&lt;br /&gt;
            &amp;quot;[[:Category:%s %s birthdays|%s %s]]&amp;quot;,&lt;br /&gt;
            monthName, day, monthName, day&lt;br /&gt;
        )&lt;br /&gt;
        &lt;br /&gt;
        output = output .. addZodiac(day, month)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return output .. table.concat(categories, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:GetBirthDate&amp;diff=2975</id>
		<title>Module:GetBirthDate</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:GetBirthDate&amp;diff=2975"/>
		<updated>2025-03-19T00:09:52Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {} local PBD = require(&amp;#039;Module:PBD&amp;#039;)  local function splitDate(date)     local day, month, year = nil, nil, nil          if date then         day, month, year = string.match(date, &amp;#039;(%d+)%s+(%a+)%s+(%d+)&amp;#039;)                  if not year then             month, day = string.match(date, &amp;#039;(%a+)%s+(%d+)&amp;#039;)                          if not day then                 day, month = string.match(date, &amp;#039;(%d+)%s+(%a+)&amp;#039;)             end         end                  if not month a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
&lt;br /&gt;
local function splitDate(date)&lt;br /&gt;
    local day, month, year = nil, nil, nil&lt;br /&gt;
    &lt;br /&gt;
    if date then&lt;br /&gt;
        day, month, year = string.match(date, &#039;(%d+)%s+(%a+)%s+(%d+)&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not year then&lt;br /&gt;
            month, day = string.match(date, &#039;(%a+)%s+(%d+)&#039;)&lt;br /&gt;
            &lt;br /&gt;
            if not day then&lt;br /&gt;
                day, month = string.match(date, &#039;(%d+)%s+(%a+)&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if not month and not day then&lt;br /&gt;
            year = string.match(date, &#039;(%d+)&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if day then day = tonumber(day) end&lt;br /&gt;
    if year then year = tonumber(year) end&lt;br /&gt;
    &lt;br /&gt;
    return day, month, year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function monthToNumber(month)&lt;br /&gt;
    local monthNames = {&lt;br /&gt;
        [&amp;quot;January&amp;quot;] = 1, [&amp;quot;February&amp;quot;] = 2, [&amp;quot;March&amp;quot;] = 3,&lt;br /&gt;
        [&amp;quot;April&amp;quot;] = 4, [&amp;quot;May&amp;quot;] = 5, [&amp;quot;June&amp;quot;] = 6,&lt;br /&gt;
        [&amp;quot;July&amp;quot;] = 7, [&amp;quot;August&amp;quot;] = 8, [&amp;quot;September&amp;quot;] = 9,&lt;br /&gt;
        [&amp;quot;October&amp;quot;] = 10, [&amp;quot;November&amp;quot;] = 11, [&amp;quot;December&amp;quot;] = 12&lt;br /&gt;
    }&lt;br /&gt;
    return monthNames[month]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.property(frame)&lt;br /&gt;
    local propertyId = frame.args[1]&lt;br /&gt;
    local part = frame.args[2]&lt;br /&gt;
    local format = frame.args[3] or &#039;number&#039;&lt;br /&gt;
    local date = PBD.property(frame, propertyId)&lt;br /&gt;
    &lt;br /&gt;
    local day, month, year = splitDate(date)&lt;br /&gt;
    &lt;br /&gt;
    local result = &#039;&#039;&lt;br /&gt;
    if part == &#039;day&#039; and day then&lt;br /&gt;
        result = day&lt;br /&gt;
    elseif part == &#039;month&#039; and month then&lt;br /&gt;
        if format == &#039;name&#039; then&lt;br /&gt;
            result = month&lt;br /&gt;
        else&lt;br /&gt;
            result = monthToNumber(month)&lt;br /&gt;
        end&lt;br /&gt;
    elseif part == &#039;year&#039; and year then&lt;br /&gt;
        result = year&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Template:Biobox-test&amp;diff=2974</id>
		<title>Template:Biobox-test</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Template:Biobox-test&amp;diff=2974"/>
		<updated>2025-03-19T00:08:42Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{safesubst:#invoke:Biobox|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; {{Documentation}} &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst:#invoke:Biobox|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonalPages/platforms&amp;diff=2973</id>
		<title>Module:BioboxPersonalPages/platforms</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonalPages/platforms&amp;diff=2973"/>
		<updated>2025-03-19T00:08:02Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local platforms = {     homepage = {         name = &amp;quot;homepage&amp;quot;,         paramBase = &amp;quot;homepage&amp;quot;,         altParams = {},         archiveBase = &amp;quot;homepage-archive&amp;quot;,         pbdProp = &amp;quot;P52&amp;quot;,         urlFormat = &amp;quot;%s&amp;quot;,         label = &amp;quot;Official website&amp;quot;,         isFullWidth = true,         maxCount = 2     },     blog = {         name = &amp;quot;blog&amp;quot;,         paramBase = &amp;quot;blog&amp;quot;,         altParams = {},         archiveBase = &amp;quot;blog-archive&amp;quot;,         pbdProp = &amp;quot;P635&amp;quot;,         urlFormat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local platforms = {&lt;br /&gt;
    homepage = {&lt;br /&gt;
        name = &amp;quot;homepage&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;homepage&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;homepage-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P52&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;%s&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Official website&amp;quot;,&lt;br /&gt;
        isFullWidth = true,&lt;br /&gt;
        maxCount = 2&lt;br /&gt;
    },&lt;br /&gt;
    blog = {&lt;br /&gt;
        name = &amp;quot;blog&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;blog&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;blog-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P635&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;%s&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Blog&amp;quot;,&lt;br /&gt;
        isFullWidth = true,&lt;br /&gt;
        maxCount = 2&lt;br /&gt;
    },&lt;br /&gt;
    facebook = {&lt;br /&gt;
        name = &amp;quot;facebook&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;facebook&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;facebook-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P350&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.facebook.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Facebook f icon (2019).svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Facebook&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Facebook&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    vk = {&lt;br /&gt;
        name = &amp;quot;vk&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;vk&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;vk-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P355&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://vk.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;VK icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;VKontakte&amp;quot;,&lt;br /&gt;
        category = &amp;quot;VKontakte&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    x = {&lt;br /&gt;
        name = &amp;quot;x&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;x&amp;quot;,&lt;br /&gt;
        altParams = {&amp;quot;twitter&amp;quot;},&lt;br /&gt;
        archiveBase = &amp;quot;x-archive&amp;quot;,&lt;br /&gt;
        altArchiveBases = {&amp;quot;twitter-archive&amp;quot;},&lt;br /&gt;
        pbdProp = &amp;quot;P137&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://x.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;X logo 2023.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;X handle&amp;quot;,&lt;br /&gt;
        category = &amp;quot;X&amp;quot;,&lt;br /&gt;
        maxCount = 3,&lt;br /&gt;
        extraFormatFunc = function(displayValue, entry)&lt;br /&gt;
            if entry.statement and entry.statement.qualifiers and entry.statement.qualifiers.P688 then&lt;br /&gt;
                local userId = entry.statement.qualifiers.P688[1].datavalue.value&lt;br /&gt;
                if userId then&lt;br /&gt;
                    displayValue = displayValue .. string.format(&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;#ID: [https://x.com/i/user/%s %s]&amp;lt;/small&amp;gt;&#039;, userId, userId)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            return displayValue&lt;br /&gt;
        end&lt;br /&gt;
    },&lt;br /&gt;
    instagram = {&lt;br /&gt;
        name = &amp;quot;instagram&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;instagram&amp;quot;,&lt;br /&gt;
        altParams = {&amp;quot;ig&amp;quot;},&lt;br /&gt;
        archiveBase = &amp;quot;instagram-archive&amp;quot;,&lt;br /&gt;
        altArchiveBases = {&amp;quot;ig-archive&amp;quot;},&lt;br /&gt;
        pbdProp = &amp;quot;P349&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.instagram.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Instagram logo 2016.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Instagram&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Instagram&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    threads = {&lt;br /&gt;
        name = &amp;quot;threads&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;threads&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;threads-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P793&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.threads.net/@%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Threads logo.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Threads&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Threads&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    telegram = {&lt;br /&gt;
        name = &amp;quot;telegram&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;telegram&amp;quot;,&lt;br /&gt;
        altParams = {&amp;quot;tg&amp;quot;},&lt;br /&gt;
        archiveBase = &amp;quot;telegram-archive&amp;quot;,&lt;br /&gt;
        altArchiveBases = {&amp;quot;tg-archive&amp;quot;},&lt;br /&gt;
        pbdProp = &amp;quot;P624&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://t.me/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Telegram 2019 Logo.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Telegram&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Telegram&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    linkedin = {&lt;br /&gt;
        name = &amp;quot;linkedin&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;linkedin&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;linkedin-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P352&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.linkedin.com/in/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Linkedin icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;LinkedIn&amp;quot;,&lt;br /&gt;
        category = &amp;quot;LinkedIn&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    youtube = {&lt;br /&gt;
        name = &amp;quot;youtube&amp;quot;,&lt;br /&gt;
        types = {&lt;br /&gt;
            {&lt;br /&gt;
                paramBase = &amp;quot;youtube&amp;quot;,&lt;br /&gt;
                altParams = {},&lt;br /&gt;
                archiveBase = &amp;quot;youtube-archive&amp;quot;,&lt;br /&gt;
                pbdProp = &amp;quot;P791&amp;quot;,&lt;br /&gt;
                urlFormat = &amp;quot;https://www.youtube.com/@%s&amp;quot;,&lt;br /&gt;
                maxCount = 3&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                paramBase = &amp;quot;youtubechannel&amp;quot;,&lt;br /&gt;
                altParams = {},&lt;br /&gt;
                archiveBase = &amp;quot;youtubechannel-archive&amp;quot;,&lt;br /&gt;
                pbdProp = &amp;quot;P375&amp;quot;,&lt;br /&gt;
                urlFormat = &amp;quot;https://www.youtube.com/channel/%s&amp;quot;,&lt;br /&gt;
                maxCount = 3&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        icon = &amp;quot;YouTube full-color icon (2017).svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;YouTube&amp;quot;,&lt;br /&gt;
        category = &amp;quot;YouTube&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    soundcloud = {&lt;br /&gt;
        name = &amp;quot;soundcloud&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;soundcloud&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;soundcloud-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P379&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://soundcloud.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Soundcloud icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;SoundCloud&amp;quot;,&lt;br /&gt;
        category = &amp;quot;SoundCloud&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    mixcloud = {&lt;br /&gt;
        name = &amp;quot;mixcloud&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;mixcloud&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;mixcloud-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P400&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.mixcloud.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Mixcloud icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;MixCloud&amp;quot;,&lt;br /&gt;
        category = &amp;quot;MixCloud&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    lastfm = {&lt;br /&gt;
        name = &amp;quot;lastfm&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;lastfm&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;lastfm-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P820&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.last.fm/music/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Last.fm icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Last.fm&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Last.fm&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    modelmayhem = {&lt;br /&gt;
        name = &amp;quot;modelmayhem&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;modelmayhem&amp;quot;,&lt;br /&gt;
        altParams = {&amp;quot;mm&amp;quot;},&lt;br /&gt;
        archiveBase = &amp;quot;modelmayhem-archive&amp;quot;,&lt;br /&gt;
        altArchiveBases = {&amp;quot;mm-archive&amp;quot;},&lt;br /&gt;
        pbdProp = &amp;quot;P411&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.modelmayhem.com/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Modelmayhem icon.png&amp;quot;,&lt;br /&gt;
        labelFunc = function()&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            local abbrTemplate = frame:expandTemplate{ title = &#039;abbr&#039;, args = { &#039;MM&#039;, &#039;Model Mayhem&#039; } }&lt;br /&gt;
            return &#039;[[File:Modelmayhem icon.png|16px|alt=Model Mayhem|link=]] &#039; .. abbrTemplate .. &#039;:&#039;&lt;br /&gt;
        end,&lt;br /&gt;
        category = &amp;quot;Model Mayhem&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    tiktok = {&lt;br /&gt;
        name = &amp;quot;tiktok&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;tiktok&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;tiktok-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P369&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.tiktok.com/@%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Tiktok icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;TikTok&amp;quot;,&lt;br /&gt;
        category = &amp;quot;TikTok&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    },&lt;br /&gt;
    reddit = {&lt;br /&gt;
        name = &amp;quot;reddit&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;reddit&amp;quot;,&lt;br /&gt;
        altParams = {},&lt;br /&gt;
        archiveBase = &amp;quot;reddit-archive&amp;quot;,&lt;br /&gt;
        pbdProp = &amp;quot;P412&amp;quot;,&lt;br /&gt;
        urlFormat = &amp;quot;https://www.reddit.com/user/%s&amp;quot;,&lt;br /&gt;
        icon = &amp;quot;Reddit icon.svg&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Reddit&amp;quot;,&lt;br /&gt;
        category = &amp;quot;Reddit&amp;quot;,&lt;br /&gt;
        maxCount = 3&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local platformOrder = {&lt;br /&gt;
    &amp;quot;homepage&amp;quot;,&lt;br /&gt;
    &amp;quot;blog&amp;quot;,&lt;br /&gt;
    &amp;quot;facebook&amp;quot;,&lt;br /&gt;
    &amp;quot;vk&amp;quot;,&lt;br /&gt;
    &amp;quot;x&amp;quot;,&lt;br /&gt;
    &amp;quot;instagram&amp;quot;,&lt;br /&gt;
    &amp;quot;threads&amp;quot;,&lt;br /&gt;
    &amp;quot;telegram&amp;quot;,&lt;br /&gt;
    &amp;quot;linkedin&amp;quot;,&lt;br /&gt;
    &amp;quot;youtube&amp;quot;,&lt;br /&gt;
    &amp;quot;soundcloud&amp;quot;,&lt;br /&gt;
    &amp;quot;mixcloud&amp;quot;,&lt;br /&gt;
    &amp;quot;lastfm&amp;quot;,&lt;br /&gt;
    &amp;quot;modelmayhem&amp;quot;,&lt;br /&gt;
    &amp;quot;tiktok&amp;quot;,&lt;br /&gt;
    &amp;quot;reddit&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
    platforms = platforms,&lt;br /&gt;
    platformOrder = platformOrder&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonalPages&amp;diff=2972</id>
		<title>Module:BioboxPersonalPages</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonalPages&amp;diff=2972"/>
		<updated>2025-03-19T00:07:49Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local platformsModule = require(&amp;#039;Module:BioboxPersonalPages/platforms&amp;#039;) local platforms = platformsModule.platforms local platformOrder = platformsModule.platformOrder  local PBD = require(&amp;#039;Module:PBD&amp;#039;) local PBDIB = require(&amp;#039;Module:PornBaseDataIB&amp;#039;)  local function isEmpty(value)     return value == nil or value == &amp;#039;&amp;#039; end  local function formatField(state, label, value, fieldName, rowIndex)     if isEmpty(value) then         return &amp;#039;&amp;#039;     end          local...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local platformsModule = require(&#039;Module:BioboxPersonalPages/platforms&#039;)&lt;br /&gt;
local platforms = platformsModule.platforms&lt;br /&gt;
local platformOrder = platformsModule.platformOrder&lt;br /&gt;
&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatField(state, label, value, fieldName, rowIndex)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = state:getRowStyle(rowIndex)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left; max-width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        state.STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatFullWidthField(state, value, rowIndex)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = state:getRowStyle(rowIndex)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;2&amp;quot; style=&amp;quot;%s text-align:center;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function formatArchiveInfo(archiveUrl, archiveDate)&lt;br /&gt;
    if isEmpty(archiveUrl) then return &amp;quot;&amp;quot; end&lt;br /&gt;
    &lt;br /&gt;
    archiveUrl = archiveUrl:match(&amp;quot;^%s*(.-)%s*$&amp;quot;) or archiveUrl&lt;br /&gt;
    &lt;br /&gt;
    local hasProtocol = archiveUrl:match(&amp;quot;^https?://&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if not hasProtocol then&lt;br /&gt;
        archiveUrl = &amp;quot;https://archive.is/&amp;quot; .. archiveUrl&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local result = string.format(&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;([%s Archive copy])&#039;, archiveUrl)&lt;br /&gt;
    if not isEmpty(archiveDate) then&lt;br /&gt;
        result = result .. string.format(&#039;&amp;lt;br&amp;gt;%s&#039;, archiveDate)&lt;br /&gt;
    end&lt;br /&gt;
    result = result .. &#039;&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function collectParametersWithSuffixes(args, paramBase, archiveBase, maxCount, altParams, altArchiveBases)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    maxCount = maxCount or 4&lt;br /&gt;
&lt;br /&gt;
    local mainParamUsed = false&lt;br /&gt;
    for i = 1, maxCount do&lt;br /&gt;
        local suffix = i &amp;gt; 1 and i or &amp;quot;&amp;quot;&lt;br /&gt;
        local paramName = paramBase .. suffix&lt;br /&gt;
        if not isEmpty(args[paramName]) then&lt;br /&gt;
            mainParamUsed = true&lt;br /&gt;
            break&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if mainParamUsed then&lt;br /&gt;
        for i = 1, maxCount do&lt;br /&gt;
            local suffix = i &amp;gt; 1 and i or &amp;quot;&amp;quot;&lt;br /&gt;
            local paramName = paramBase .. suffix&lt;br /&gt;
            local archiveParamName = archiveBase .. suffix&lt;br /&gt;
            if not isEmpty(args[paramName]) then&lt;br /&gt;
                local entry = {username = args[paramName]}&lt;br /&gt;
                if not isEmpty(args[archiveParamName]) then&lt;br /&gt;
                    entry.archive = args[archiveParamName]&lt;br /&gt;
                end&lt;br /&gt;
                table.insert(values, entry)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        for j, altParam in ipairs(altParams or {}) do&lt;br /&gt;
            local altArchiveBase = altArchiveBases and altArchiveBases[j] or archiveBase&lt;br /&gt;
            for i = 1, maxCount do&lt;br /&gt;
                local suffix = i &amp;gt; 1 and i or &amp;quot;&amp;quot;&lt;br /&gt;
                local paramName = altParam .. suffix&lt;br /&gt;
                local archiveParamName = altArchiveBase .. suffix&lt;br /&gt;
                if not isEmpty(args[paramName]) then&lt;br /&gt;
                    local entry = {username = args[paramName]}&lt;br /&gt;
                    if not isEmpty(args[archiveParamName]) then&lt;br /&gt;
                        entry.archive = args[archiveParamName]&lt;br /&gt;
                    end&lt;br /&gt;
                    table.insert(values, entry)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return values&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatPlatform(state, args, platformConfig, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local values = {}&lt;br /&gt;
&lt;br /&gt;
    if platformConfig.paramBase then&lt;br /&gt;
        values = collectParametersWithSuffixes(&lt;br /&gt;
            args,&lt;br /&gt;
            platformConfig.paramBase,&lt;br /&gt;
            platformConfig.archiveBase,&lt;br /&gt;
            platformConfig.maxCount,&lt;br /&gt;
            platformConfig.altParams,&lt;br /&gt;
            platformConfig.altArchiveBases&lt;br /&gt;
        )&lt;br /&gt;
    elseif platformConfig.types then&lt;br /&gt;
        for _, typeConfig in ipairs(platformConfig.types) do&lt;br /&gt;
            local typeValues = collectParametersWithSuffixes(&lt;br /&gt;
                args,&lt;br /&gt;
                typeConfig.paramBase,&lt;br /&gt;
                typeConfig.archiveBase,&lt;br /&gt;
                typeConfig.maxCount,&lt;br /&gt;
                typeConfig.altParams,&lt;br /&gt;
                typeConfig.altArchiveBases&lt;br /&gt;
            )&lt;br /&gt;
            for _, val in ipairs(typeValues) do&lt;br /&gt;
                val.typeConfig = typeConfig&lt;br /&gt;
                table.insert(values, val)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #values == 0 and args.qid then&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        if platformConfig.pbdProp and entity and entity.claims and entity.claims[platformConfig.pbdProp] then&lt;br /&gt;
            for _, statement in ipairs(entity.claims[platformConfig.pbdProp]) do&lt;br /&gt;
                if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                   statement.mainsnak.datavalue and &lt;br /&gt;
                   statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                    local username = statement.mainsnak.datavalue.value&lt;br /&gt;
                    local entry = {username = username, statement = statement}&lt;br /&gt;
                    if statement.qualifiers and statement.qualifiers.P208 then&lt;br /&gt;
                        entry.archive = statement.qualifiers.P208[1].datavalue.value&lt;br /&gt;
                    end&lt;br /&gt;
                    if statement.qualifiers and statement.qualifiers.P227 then&lt;br /&gt;
                        local timeValue = statement.qualifiers.P227[1].datavalue.value&lt;br /&gt;
                        if timeValue and timeValue.time then&lt;br /&gt;
                            local year, month, day = timeValue.time:match(&amp;quot;^[+%-](%d%d%d%d)-(%d%d)-(%d%d)&amp;quot;)&lt;br /&gt;
                            if year and month and day then&lt;br /&gt;
                                entry.archiveDate = day .. &amp;quot; &amp;quot; .. os.date(&amp;quot;%B&amp;quot;, os.time({year=2000, month=tonumber(month), day=1})) .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                    table.insert(values, entry)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        elseif platformConfig.types then&lt;br /&gt;
            for _, typeConfig in ipairs(platformConfig.types) do&lt;br /&gt;
                if typeConfig.pbdProp and entity and entity.claims and entity.claims[typeConfig.pbdProp] then&lt;br /&gt;
                    for _, statement in ipairs(entity.claims[typeConfig.pbdProp]) do&lt;br /&gt;
                        if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                           statement.mainsnak.datavalue and &lt;br /&gt;
                           statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                            local username = statement.mainsnak.datavalue.value&lt;br /&gt;
                            local entry = {username = username, statement = statement, typeConfig = typeConfig}&lt;br /&gt;
                            if statement.qualifiers and statement.qualifiers.P208 then&lt;br /&gt;
                                entry.archive = statement.qualifiers.P208[1].datavalue.value&lt;br /&gt;
                            end&lt;br /&gt;
                            if statement.qualifiers and statement.qualifiers.P227 then&lt;br /&gt;
                                local timeValue = statement.qualifiers.P227[1].datavalue.value&lt;br /&gt;
                                if timeValue and timeValue.time then&lt;br /&gt;
                                    local year, month, day = timeValue.time:match(&amp;quot;^[+%-](%d%d%d%d)-(%d%d)-(%d%d)&amp;quot;)&lt;br /&gt;
                                    if year and month and day then&lt;br /&gt;
                                        entry.archiveDate = day .. &amp;quot; &amp;quot; .. os.date(&amp;quot;%B&amp;quot;, os.time({year=2000, month=tonumber(month), day=1})) .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
                                    end&lt;br /&gt;
                                end&lt;br /&gt;
                            end&lt;br /&gt;
                            table.insert(values, entry)&lt;br /&gt;
                        end&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;
    if #values &amp;gt; 0 then&lt;br /&gt;
        local displayValues = {}&lt;br /&gt;
        for _, entry in ipairs(values) do&lt;br /&gt;
            local urlFormat = platformConfig.urlFormat or (entry.typeConfig and entry.typeConfig.urlFormat)&lt;br /&gt;
            local displayValue&lt;br /&gt;
            if platformConfig.isFullWidth then&lt;br /&gt;
                displayValue = string.format(&#039;[%s %s]&#039;, urlFormat:format(entry.username), platformConfig.label)&lt;br /&gt;
            else&lt;br /&gt;
                displayValue = string.format(&#039;[%s %s]&#039;, urlFormat:format(entry.username), entry.username)&lt;br /&gt;
            end&lt;br /&gt;
            if platformConfig.extraFormatFunc then&lt;br /&gt;
                displayValue = platformConfig.extraFormatFunc(displayValue, entry)&lt;br /&gt;
            end&lt;br /&gt;
            if entry.archive then&lt;br /&gt;
                displayValue = displayValue .. formatArchiveInfo(entry.archive, entry.archiveDate)&lt;br /&gt;
            end&lt;br /&gt;
            table.insert(displayValues, displayValue)&lt;br /&gt;
        end&lt;br /&gt;
        local combinedDisplay = table.concat(displayValues, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
        if platformConfig.category then&lt;br /&gt;
            local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                combinedDisplay = combinedDisplay .. &#039;[[Category:&#039; .. platformConfig.category .. &#039;|&#039; .. mw.title.getCurrentTitle().text .. &#039;]]&#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if platformConfig.isFullWidth then&lt;br /&gt;
            section[#section + 1] = formatFullWidthField(state, combinedDisplay, rowIndex)&lt;br /&gt;
        else&lt;br /&gt;
            local label&lt;br /&gt;
            if platformConfig.labelFunc then&lt;br /&gt;
                label = platformConfig.labelFunc()&lt;br /&gt;
            else&lt;br /&gt;
                label = platformConfig.label&lt;br /&gt;
                if platformConfig.icon then&lt;br /&gt;
                    label = &#039;[[File:&#039; .. platformConfig.icon .. &#039;|16px|alt=&#039; .. platformConfig.label .. &#039;|link=]] &#039; .. label .. &#039;:&#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            section[#section + 1] = formatField(state, label, combinedDisplay, platformConfig.name, rowIndex)&lt;br /&gt;
        end&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatPersonalPagesSection(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local platformSections = {}&lt;br /&gt;
    local hasAny = false&lt;br /&gt;
&lt;br /&gt;
    for _, platformName in ipairs(platformOrder) do&lt;br /&gt;
        local config = platforms[platformName]&lt;br /&gt;
        if config then&lt;br /&gt;
            local platformSection, newRowIndex = p.formatPlatform(state, args, config, rowIndex)&lt;br /&gt;
            if #platformSection &amp;gt; 0 then&lt;br /&gt;
                hasAny = true&lt;br /&gt;
                for _, line in ipairs(platformSection) do&lt;br /&gt;
                    platformSections[#platformSections + 1] = line&lt;br /&gt;
                end&lt;br /&gt;
                rowIndex = newRowIndex&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if hasAny then&lt;br /&gt;
        section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;Personal pages\&#039;\&#039;\&#039;&#039;, state.STYLES.SECTION_HEADER)&lt;br /&gt;
        for _, line in ipairs(platformSections) do&lt;br /&gt;
            section[#section + 1] = line&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxDatabases/databases&amp;diff=2971</id>
		<title>Module:BioboxDatabases/databases</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxDatabases/databases&amp;diff=2971"/>
		<updated>2025-03-19T00:07:15Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local databases = {     imdb = {         name = &amp;quot;imdb&amp;quot;,         paramBase = &amp;quot;imdb&amp;quot;,         pbdProps = {&amp;quot;P16&amp;quot;},         urlFormat = &amp;quot;http://www.imdb.com/name/%s&amp;quot;,         abbr = &amp;quot;IMDb:&amp;quot;,         label = &amp;quot;Internet Movie Database&amp;quot;,         maxCount = 4     },     iafd = {         name = &amp;quot;iafd&amp;quot;,         paramBase = &amp;quot;iafd&amp;quot;,         pbdProps = {&amp;quot;P799&amp;quot;, &amp;quot;P169&amp;quot;},         abbr = &amp;quot;IAFD:&amp;quot;,         label = &amp;quot;Internet Adult Film Database&amp;quot;,         maxCount = 4     },     gevi = {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local databases = {&lt;br /&gt;
    imdb = {&lt;br /&gt;
        name = &amp;quot;imdb&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;imdb&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P16&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;http://www.imdb.com/name/%s&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;IMDb:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Internet Movie Database&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    iafd = {&lt;br /&gt;
        name = &amp;quot;iafd&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;iafd&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P799&amp;quot;, &amp;quot;P169&amp;quot;},&lt;br /&gt;
        abbr = &amp;quot;IAFD:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Internet Adult Film Database&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    gevi = {&lt;br /&gt;
        name = &amp;quot;gevi&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;gevi&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P378&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://www.gayeroticvideoindex.com/performer/%s&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;GEVI:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Gay Erotic Video Index&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    afdb = {&lt;br /&gt;
        name = &amp;quot;afdb&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;afdb&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P392&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;http://www.adultfilmdatabase.com/actor/%s&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;AFDB:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Adult Film Database&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    },&lt;br /&gt;
    gvdb = {&lt;br /&gt;
        name = &amp;quot;gvdb&amp;quot;,&lt;br /&gt;
        paramBase = &amp;quot;gvdb&amp;quot;,&lt;br /&gt;
        pbdProps = {&amp;quot;P409&amp;quot;},&lt;br /&gt;
        urlFormat = &amp;quot;https://anonim.xyz/go/md.gvdb.org/%s&amp;quot;,&lt;br /&gt;
        abbr = &amp;quot;GVDB:&amp;quot;,&lt;br /&gt;
        label = &amp;quot;Japan Gay Porn Models Pornstar Database&amp;quot;,&lt;br /&gt;
        maxCount = 4&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local databaseOrder = {&lt;br /&gt;
    &amp;quot;imdb&amp;quot;,&lt;br /&gt;
    &amp;quot;iafd&amp;quot;,&lt;br /&gt;
    &amp;quot;gevi&amp;quot;,&lt;br /&gt;
    &amp;quot;afdb&amp;quot;,&lt;br /&gt;
    &amp;quot;gvdb&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
    databases = databases,&lt;br /&gt;
    databaseOrder = databaseOrder&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxDatabases&amp;diff=2970</id>
		<title>Module:BioboxDatabases</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxDatabases&amp;diff=2970"/>
		<updated>2025-03-19T00:07:00Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local databasesModule = require(&amp;#039;Module:BioboxDatabases/databases&amp;#039;) local databases = databasesModule.databases local databaseOrder = databasesModule.databaseOrder  local PBD = require(&amp;#039;Module:PBD&amp;#039;) local PBDIB = require(&amp;#039;Module:PornBaseDataIB&amp;#039;)  local function isEmpty(value)     return value == nil or value == &amp;#039;&amp;#039; end  local function formatField(state, label, value, fieldName, rowIndex)     if isEmpty(value) then         return &amp;#039;&amp;#039;     end          local row...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local databasesModule = require(&#039;Module:BioboxDatabases/databases&#039;)&lt;br /&gt;
local databases = databasesModule.databases&lt;br /&gt;
local databaseOrder = databasesModule.databaseOrder&lt;br /&gt;
&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatField(state, label, value, fieldName, rowIndex)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = state:getRowStyle(rowIndex)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left; max-width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        state.STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function collectParametersWithSuffixes(args, paramBase, maxCount)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    maxCount = tonumber(maxCount) or 4&lt;br /&gt;
&lt;br /&gt;
    for i = 1, maxCount do&lt;br /&gt;
        local suffix = i &amp;gt; 1 and i or &amp;quot;&amp;quot;&lt;br /&gt;
        local paramName = paramBase .. suffix&lt;br /&gt;
        if not isEmpty(args[paramName]) then&lt;br /&gt;
            table.insert(values, args[paramName])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return values&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatDatabase(state, args, databaseConfig, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local values = {}&lt;br /&gt;
&lt;br /&gt;
    if databaseConfig.paramBase then&lt;br /&gt;
        values = collectParametersWithSuffixes(&lt;br /&gt;
            args,&lt;br /&gt;
            databaseConfig.paramBase,&lt;br /&gt;
            databaseConfig.maxCount&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #values == 0 and args.qid then&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        if databaseConfig.pbdProps then&lt;br /&gt;
            for _, pbdProp in ipairs(databaseConfig.pbdProps) do&lt;br /&gt;
                if entity and entity.claims and entity.claims[pbdProp] then&lt;br /&gt;
                    if databaseConfig.name == &amp;quot;iafd&amp;quot; and #values &amp;gt; 0 and pbdProp == &amp;quot;P169&amp;quot; then&lt;br /&gt;
                        break&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    for _, statement in ipairs(entity.claims[pbdProp]) do&lt;br /&gt;
                        if statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                           statement.mainsnak.datavalue then&lt;br /&gt;
                            local id&lt;br /&gt;
                            if statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value&lt;br /&gt;
                            elseif statement.mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                id = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                            end&lt;br /&gt;
                            &lt;br /&gt;
                            if id then&lt;br /&gt;
                                if pbdProp == &amp;quot;P16&amp;quot; and not id:match(&amp;quot;^nm&amp;quot;) then&lt;br /&gt;
                                    id = &amp;quot;nm&amp;quot; .. id&lt;br /&gt;
                                end&lt;br /&gt;
                                &lt;br /&gt;
                                table.insert(values, {id = id, pbdProp = pbdProp})&lt;br /&gt;
                            end&lt;br /&gt;
                        end&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;
    if #values &amp;gt; 0 then&lt;br /&gt;
        local displayValues = {}&lt;br /&gt;
        &lt;br /&gt;
        for _, entry in ipairs(values) do&lt;br /&gt;
            local id, pbdProp&lt;br /&gt;
            if type(entry) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                id = entry.id&lt;br /&gt;
                pbdProp = entry.pbdProp&lt;br /&gt;
            else&lt;br /&gt;
                id = entry&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local urlFormat = databaseConfig.urlFormat&lt;br /&gt;
            &lt;br /&gt;
            if databaseConfig.name == &amp;quot;iafd&amp;quot; then&lt;br /&gt;
                if id:match(&amp;quot;^%x+%-%x+%-%x+%-%x+%-%x+$&amp;quot;) then&lt;br /&gt;
                    urlFormat = &amp;quot;https://www.iafd.com/person.rme/id=%s&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    urlFormat = &amp;quot;https://www.iafd.com/person.rme/perfid=%s/gender=m&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            if databaseConfig.name == &amp;quot;imdb&amp;quot; then&lt;br /&gt;
                if not id:match(&amp;quot;^nm%d+$&amp;quot;) then&lt;br /&gt;
                    id = &amp;quot;nm&amp;quot; .. id&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local displayValue = string.format(&#039;[%s %s]&#039;, urlFormat:format(id), id:gsub(&amp;quot;^nm&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
            table.insert(displayValues, displayValue)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local combinedDisplay = table.concat(displayValues, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
        local label&lt;br /&gt;
        if databaseConfig.labelFunc then&lt;br /&gt;
            label = databaseConfig.labelFunc()&lt;br /&gt;
        else&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            label = frame:expandTemplate{ title = &#039;abbr&#039;, args = { databaseConfig.abbr, databaseConfig.label } }&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = formatField(state, label, combinedDisplay, databaseConfig.name, rowIndex)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatDatabasesSection(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local databaseSections = {}&lt;br /&gt;
    local hasAny = false&lt;br /&gt;
&lt;br /&gt;
    for _, databaseName in ipairs(databaseOrder) do&lt;br /&gt;
        local config = databases[databaseName]&lt;br /&gt;
        if config then&lt;br /&gt;
            local databaseSection, newRowIndex = p.formatDatabase(state, args, config, rowIndex)&lt;br /&gt;
            if #databaseSection &amp;gt; 0 then&lt;br /&gt;
                hasAny = true&lt;br /&gt;
                for _, line in ipairs(databaseSection) do&lt;br /&gt;
                    databaseSections[#databaseSections + 1] = line&lt;br /&gt;
                end&lt;br /&gt;
                rowIndex = newRowIndex&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if hasAny then&lt;br /&gt;
        section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;Databases\&#039;\&#039;\&#039;&#039;, state.STYLES.SECTION_HEADER)&lt;br /&gt;
        for _, line in ipairs(databaseSections) do&lt;br /&gt;
            section[#section + 1] = line&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxCategoryMapping&amp;diff=2969</id>
		<title>Module:BioboxCategoryMapping</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxCategoryMapping&amp;diff=2969"/>
		<updated>2025-03-19T00:06:35Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  p.MAPPINGS = { 	orientation = { 	    {aliases = {&amp;quot;gay&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;homosexual&amp;quot;, &amp;quot;homosexuality&amp;quot;}, category = &amp;quot;Gay people&amp;quot;, display = &amp;quot;Gay&amp;quot;, class = &amp;quot;gay&amp;quot;}, 	    {aliases = {&amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;, &amp;quot;bisexual&amp;quot;}, category = &amp;quot;Bisexual people&amp;quot;, display = &amp;quot;Bisexual&amp;quot;, class = &amp;quot;bisexual&amp;quot;}, 	    {aliases = {&amp;quot;straight&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;str8&amp;quot;, &amp;quot;hetero&amp;quot;, &amp;quot;heterosexual&amp;quot;}, category = &amp;quot;Heterosexual people&amp;quot;, display = &amp;quot;Heterosexual&amp;quot;, class = &amp;quot;straight&amp;quot;} 	},     hair = {         {alia...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
p.MAPPINGS = {&lt;br /&gt;
	orientation = {&lt;br /&gt;
	    {aliases = {&amp;quot;gay&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;homosexual&amp;quot;, &amp;quot;homosexuality&amp;quot;}, category = &amp;quot;Gay people&amp;quot;, display = &amp;quot;Gay&amp;quot;, class = &amp;quot;gay&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;, &amp;quot;bisexual&amp;quot;}, category = &amp;quot;Bisexual people&amp;quot;, display = &amp;quot;Bisexual&amp;quot;, class = &amp;quot;bisexual&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;straight&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;str8&amp;quot;, &amp;quot;hetero&amp;quot;, &amp;quot;heterosexual&amp;quot;}, category = &amp;quot;Heterosexual people&amp;quot;, display = &amp;quot;Heterosexual&amp;quot;, class = &amp;quot;straight&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
    hair = {&lt;br /&gt;
        {aliases = {&amp;quot;auburn&amp;quot;, &amp;quot;auburn hair&amp;quot;}, category = &amp;quot;Auburn hair&amp;quot;, display = &amp;quot;Auburn&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;blond&amp;quot;, &amp;quot;blonde&amp;quot;, &amp;quot;blond hair&amp;quot;, &amp;quot;blonde hair&amp;quot;}, category = &amp;quot;Blond&amp;quot;, display = &amp;quot;Blond&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;brunet&amp;quot;, &amp;quot;brunet hair&amp;quot;}, category = &amp;quot;Brunet&amp;quot;, display = &amp;quot;Brunet&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;black&amp;quot;, &amp;quot;black hair&amp;quot;}, category = &amp;quot;Black hair&amp;quot;, display = &amp;quot;Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;brown&amp;quot;, &amp;quot;brown hair&amp;quot;}, category = &amp;quot;Brown hair&amp;quot;, display = &amp;quot;Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;dark blonde&amp;quot;, &amp;quot;dark blond&amp;quot;, &amp;quot;dark blonde hair&amp;quot;, &amp;quot;dark blond hair&amp;quot;}, category = &amp;quot;Dark blond hair&amp;quot;, display = &amp;quot;Dark Blond&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;dark brown&amp;quot;, &amp;quot;dark brown hair&amp;quot;}, category = &amp;quot;Dark brown hair&amp;quot;, display = &amp;quot;Dark Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;gray&amp;quot;, &amp;quot;gray hair&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;silver hair&amp;quot;}, category = &amp;quot;Gray hair&amp;quot;, display = &amp;quot;Gray&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;light brown&amp;quot;, &amp;quot;light brown hair&amp;quot;}, category = &amp;quot;Light brown hair&amp;quot;, display = &amp;quot;Light Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;redhead&amp;quot;, &amp;quot;redhead hair&amp;quot;, &amp;quot;red head&amp;quot;, &amp;quot;red head hair&amp;quot;, &amp;quot;ginger&amp;quot;, &amp;quot;ginger hair&amp;quot;}, category = &amp;quot;Redhead&amp;quot;, display = &amp;quot;Redhead&amp;quot;}&lt;br /&gt;
    },&lt;br /&gt;
	hair_length = {&lt;br /&gt;
	    {aliases = {&amp;quot;short&amp;quot;, &amp;quot;shorthair&amp;quot;, &amp;quot;short hair&amp;quot;}, display = &amp;quot;Short&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;bald&amp;quot;, &amp;quot;baldness&amp;quot;, &amp;quot;baldhead&amp;quot;, &amp;quot;bald head&amp;quot;, &amp;quot;baldhair&amp;quot;, &amp;quot;bald hair&amp;quot;}, display = &amp;quot;Bald&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;long&amp;quot;, &amp;quot;longhair&amp;quot;, &amp;quot;long hair&amp;quot;}, display = &amp;quot;Long&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;shaved&amp;quot;, &amp;quot;buzzcut&amp;quot;, &amp;quot;shavedhead&amp;quot;, &amp;quot;shaved head&amp;quot;, &amp;quot;shavedhair&amp;quot;, &amp;quot;shaved hair&amp;quot;}, display = &amp;quot;Shaved&amp;quot;},&lt;br /&gt;
	    {aliases = {&amp;quot;buzz cut&amp;quot;, &amp;quot;skinhead hairstyle&amp;quot;, &amp;quot;skinhead hair&amp;quot;, &amp;quot;skinhead&amp;quot;, &amp;quot;skin head&amp;quot;}, display = &amp;quot;Buzz cut&amp;quot;}&lt;br /&gt;
	},&lt;br /&gt;
    eye_color = {&lt;br /&gt;
        {aliases = {&amp;quot;amber&amp;quot;, &amp;quot;amber eyes&amp;quot;}, category = &amp;quot;Amber eyes&amp;quot;, display = &amp;quot;Amber&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;black&amp;quot;, &amp;quot;black eyes&amp;quot;}, category = &amp;quot;Black eyes&amp;quot;, display = &amp;quot;Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;blue&amp;quot;, &amp;quot;blue eyes&amp;quot;}, category = &amp;quot;Blue eyes&amp;quot;, display = &amp;quot;Blue&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;blue-brown&amp;quot;, &amp;quot;blue-brown eyes&amp;quot;, &amp;quot;blue brown&amp;quot;, &amp;quot;blue brown eyes&amp;quot;, &amp;quot;brown-blue eyes&amp;quot;, &amp;quot;brown-blue&amp;quot;, &amp;quot;brown blue&amp;quot;, &amp;quot;brown blue eyes&amp;quot;}, category = &amp;quot;Blue-Brown eyes&amp;quot;, display = &amp;quot;Blue-Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;blue-green&amp;quot;, &amp;quot;blue-green eyes&amp;quot;, &amp;quot;blue green&amp;quot;, &amp;quot;blue green eyes&amp;quot;, &amp;quot;green-blue&amp;quot;, &amp;quot;green-blue eyes&amp;quot;, &amp;quot;green blue&amp;quot;, &amp;quot;green blue eyes&amp;quot;}, category = &amp;quot;Blue-Green eyes&amp;quot;, display = &amp;quot;Blue-Green&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;brown&amp;quot;, &amp;quot;brown eyes&amp;quot;}, category = &amp;quot;Brown eyes&amp;quot;, display = &amp;quot;Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;gray&amp;quot;, &amp;quot;gray eyes&amp;quot;, &amp;quot;grey&amp;quot;, &amp;quot;grey eyes&amp;quot;}, category = &amp;quot;Gray eyes&amp;quot;, display = &amp;quot;Gray&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;gray-green&amp;quot;, &amp;quot;gray green&amp;quot;, &amp;quot;gray-green eyes&amp;quot;, &amp;quot;gray green eyes&amp;quot;, &amp;quot;green-gray&amp;quot;, &amp;quot;green gray&amp;quot;, &amp;quot;green-gray eyes&amp;quot;, &amp;quot;green gray eyes&amp;quot;, &amp;quot;grey-green&amp;quot;, &amp;quot;grey green&amp;quot;, &amp;quot;grey-green eyes&amp;quot;, &amp;quot;grey green eyes&amp;quot;, &amp;quot;green-grey&amp;quot;, &amp;quot;green grey&amp;quot;, &amp;quot;green-grey eyes&amp;quot;, &amp;quot;green grey eyes&amp;quot;}, category = &amp;quot;Gray-Green eyes&amp;quot;, display = &amp;quot;Gray-Green&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;green&amp;quot;, &amp;quot;green eyes&amp;quot;}, category = &amp;quot;Green eyes&amp;quot;, display = &amp;quot;Green&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;hazel&amp;quot;, &amp;quot;hazel eyes&amp;quot;}, category = &amp;quot;Hazel eyes&amp;quot;, display = &amp;quot;Hazel&amp;quot;}&lt;br /&gt;
    },&lt;br /&gt;
    body_type = {&lt;br /&gt;
        {aliases = {&amp;quot;slim&amp;quot;, &amp;quot;slim body&amp;quot;}, category = &amp;quot;Slim&amp;quot;, display = &amp;quot;Slim&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;swimmer&amp;quot;, &amp;quot;swimmer body&amp;quot;}, category = &amp;quot;Swimmer&amp;quot;, display = &amp;quot;Swimmer&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;athletic&amp;quot;, &amp;quot;athletic body&amp;quot;}, category = &amp;quot;Athletic&amp;quot;, display = &amp;quot;Athletic&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;muscular&amp;quot;, &amp;quot;muscular body&amp;quot;}, category = &amp;quot;Muscular&amp;quot;, display = &amp;quot;Muscular&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;average&amp;quot;, &amp;quot;average body&amp;quot;}, category = &amp;quot;Average body&amp;quot;, display = &amp;quot;Average&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;beefy&amp;quot;, &amp;quot;beefy body&amp;quot;}, category = &amp;quot;Beefy&amp;quot;, display = &amp;quot;Beefy&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;bear&amp;quot;, &amp;quot;bear body&amp;quot;}, category = &amp;quot;Bear&amp;quot;, display = &amp;quot;Bear&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;bodybuilder&amp;quot;, &amp;quot;bodybuilder body&amp;quot;}, category = &amp;quot;Bodybuilder&amp;quot;, display = &amp;quot;Bodybuilder&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;chubby&amp;quot;, &amp;quot;chubby body&amp;quot;}, category = &amp;quot;Chubby&amp;quot;, display = &amp;quot;Chubby&amp;quot;}&lt;br /&gt;
    },&lt;br /&gt;
    skin = {&lt;br /&gt;
        {aliases = {&amp;quot;black&amp;quot;, &amp;quot;black skin&amp;quot;}, category = &amp;quot;Black skin&amp;quot;, display = &amp;quot;Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;dark&amp;quot;, &amp;quot;dark skin&amp;quot;}, category = &amp;quot;Dark skin&amp;quot;, display = &amp;quot;Dark&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;dark black&amp;quot;, &amp;quot;dark black skin&amp;quot;}, category = &amp;quot;Dark Black skin&amp;quot;, display = &amp;quot;Dark Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;dark olive&amp;quot;, &amp;quot;dark olive skin&amp;quot;}, category = &amp;quot;Dark Olive skin&amp;quot;, display = &amp;quot;Dark Olive&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;light black&amp;quot;, &amp;quot;light black skin&amp;quot;}, category = &amp;quot;Light Black skin&amp;quot;, display = &amp;quot;Light Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;medium black&amp;quot;, &amp;quot;medium black skin&amp;quot;}, category = &amp;quot;Medium Black skin&amp;quot;, display = &amp;quot;Medium Black&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;light brown&amp;quot;, &amp;quot;light brown skin&amp;quot;}, category = &amp;quot;Light Brown skin&amp;quot;, display = &amp;quot;Light Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;brown&amp;quot;, &amp;quot;brown skin&amp;quot;}, category = &amp;quot;Brown skin&amp;quot;, display = &amp;quot;Brown&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;olive&amp;quot;, &amp;quot;olive skin&amp;quot;}, category = &amp;quot;Olive skin&amp;quot;, display = &amp;quot;Olive&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;white&amp;quot;, &amp;quot;white skin&amp;quot;}, category = &amp;quot;White skin&amp;quot;, display = &amp;quot;White&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;tanned&amp;quot;, &amp;quot;tanned skin&amp;quot;}, category = &amp;quot;Tanned skin&amp;quot;, display = &amp;quot;Tanned&amp;quot;}&lt;br /&gt;
    },&lt;br /&gt;
    ass_type = {&lt;br /&gt;
        {aliases = {&amp;quot;small&amp;quot;, &amp;quot;small ass&amp;quot;}, category = &amp;quot;Small Ass&amp;quot;, display = &amp;quot;Small Ass&amp;quot;, priority = 1},&lt;br /&gt;
        {aliases = {&amp;quot;medium&amp;quot;, &amp;quot;medium ass&amp;quot;}, category = &amp;quot;Medium Ass&amp;quot;, display = &amp;quot;Medium Ass&amp;quot;, priority = 2},&lt;br /&gt;
        {aliases = {&amp;quot;big&amp;quot;, &amp;quot;big ass&amp;quot;}, category = &amp;quot;Big Ass&amp;quot;, display = &amp;quot;Big Ass&amp;quot;, priority = 3},&lt;br /&gt;
        {aliases = {&amp;quot;bubble&amp;quot;, &amp;quot;bubble butt&amp;quot;}, category = &amp;quot;Bubble Butt&amp;quot;, display = &amp;quot;Bubble Butt&amp;quot;, priority = 0}&lt;br /&gt;
    },&lt;br /&gt;
    foreskin = {&lt;br /&gt;
        [&amp;quot;cut&amp;quot;] = {category = &amp;quot;Cut&amp;quot;, display = &amp;quot;Cut&amp;quot;},&lt;br /&gt;
        [&amp;quot;uncut&amp;quot;] = {category = &amp;quot;Uncut&amp;quot;, display = &amp;quot;Uncut&amp;quot;}&lt;br /&gt;
    },&lt;br /&gt;
    chest_hair = {&lt;br /&gt;
        {aliases = {&amp;quot;hairy chest&amp;quot;, &amp;quot;hairy&amp;quot;}, category = &amp;quot;Hairy Chest&amp;quot;, display = &amp;quot;Hairy&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;small&amp;quot;, &amp;quot;small hair&amp;quot;, &amp;quot;small chest hair&amp;quot;}, category = &amp;quot;Small chest hair&amp;quot;, display = &amp;quot;Small&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;smooth chest&amp;quot;, &amp;quot;smooth&amp;quot;}, category = &amp;quot;Smooth Chest&amp;quot;, display = &amp;quot;Smooth&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;c&amp;quot;, &amp;quot;circumareolar&amp;quot;}, category = &amp;quot;Circumareolar chest hair&amp;quot;, display = &amp;quot;C&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;ci&amp;quot;, &amp;quot;circumareolo-infraclavicular&amp;quot;, &amp;quot;circumareolo infraclavicular&amp;quot;, &amp;quot;circumareoloin fraclavicular&amp;quot;}, category = &amp;quot;Circumareolo-Infraclavicular chest hair&amp;quot;, display = &amp;quot;CI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;cp&amp;quot;, &amp;quot;circumareolo-pectoral&amp;quot;, &amp;quot;circumareolo pectoral&amp;quot;, &amp;quot;circumareolopectoral&amp;quot;}, category = &amp;quot;Circumareolo-Pectoral chest hair&amp;quot;, display = &amp;quot;CP&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;cpi&amp;quot;, &amp;quot;circumareolo-pecto-infraclavicular&amp;quot;, &amp;quot;circumareolo pecto infraclavicular&amp;quot;, &amp;quot;circumareolopectoinfraclavicular&amp;quot;}, category = &amp;quot;Circumareolo-Pecto-Infraclavicular chest hair&amp;quot;, display = &amp;quot;CPI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;cps&amp;quot;, &amp;quot;circumareolo-pecto-sternal&amp;quot;, &amp;quot;circumareolo pecto sternal&amp;quot;, &amp;quot;circumareolopectosternal&amp;quot;}, category = &amp;quot;Circumareolo-Pecto-Sternal chest hair&amp;quot;, display = &amp;quot;CPS&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;cpsi&amp;quot;, &amp;quot;circumareolo-pecto-sterno-infraclavicular&amp;quot;, &amp;quot;circumareolo pecto sterno infraclavicular&amp;quot;, &amp;quot;circumareolopectosternoinfraclavicular&amp;quot;}, category = &amp;quot;Circumareolo-Pecto-Sterno-Infraclavicular chest hair&amp;quot;, display = &amp;quot;CPSI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;cs&amp;quot;, &amp;quot;circumareolo-sternal&amp;quot;, &amp;quot;circumareolo sternal&amp;quot;, &amp;quot;circumareolosternal&amp;quot;}, category = &amp;quot;Circumareolo-Sternal chest hair&amp;quot;, display = &amp;quot;CS&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;csi&amp;quot;, &amp;quot;circumareolo-sterno-infraclavicular&amp;quot;, &amp;quot;circumareolo sterno infraclavicular&amp;quot;, &amp;quot;circumareolosternoin fraclavicular&amp;quot;}, category = &amp;quot;Circumareolo-Sterno-Infraclavicular chest hair&amp;quot;, display = &amp;quot;CSI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;i&amp;quot;, &amp;quot;infraclavicular&amp;quot;}, category = &amp;quot;Infraclavicular chest hair&amp;quot;, display = &amp;quot;I&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;p&amp;quot;, &amp;quot;pectoral&amp;quot;}, category = &amp;quot;Pectoral chest hair&amp;quot;, display = &amp;quot;P&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;pi&amp;quot;, &amp;quot;pecto-infraclavicular&amp;quot;, &amp;quot;pecto infraclavicular&amp;quot;, &amp;quot;pectoinfraclavicular&amp;quot;}, category = &amp;quot;Pecto-Infraclavicular chest hair&amp;quot;, display = &amp;quot;PI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;ps&amp;quot;, &amp;quot;pecto-sternal&amp;quot;, &amp;quot;pecto sternal&amp;quot;, &amp;quot;pectosternal&amp;quot;}, category = &amp;quot;Pecto-Sternal chest hair&amp;quot;, display = &amp;quot;PS&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;psi&amp;quot;, &amp;quot;pecto-sterno-infraclavicular&amp;quot;, &amp;quot;pecto sterno infraclavicular&amp;quot;, &amp;quot;pectosternoinfraclavicular&amp;quot;}, category = &amp;quot;Pecto-Sterno-Infraclavicular chest hair&amp;quot;, display = &amp;quot;PSI&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;s&amp;quot;, &amp;quot;sternal&amp;quot;}, category = &amp;quot;Sternal chest hair&amp;quot;, display = &amp;quot;S&amp;quot;},&lt;br /&gt;
        {aliases = {&amp;quot;si&amp;quot;, &amp;quot;sterno-infraclavicular&amp;quot;, &amp;quot;sterno infraclavicular&amp;quot;, &amp;quot;sternoinfraclavicular&amp;quot;}, category = &amp;quot;Sterno-Infraclavicular chest hair&amp;quot;, display = &amp;quot;SI&amp;quot;}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.LABELS = {&lt;br /&gt;
	orientation = &amp;quot;Orientation:&amp;quot;,&lt;br /&gt;
    hair = &amp;quot;Hair:&amp;quot;,&lt;br /&gt;
    eye_color = &amp;quot;Eye color:&amp;quot;,&lt;br /&gt;
    body_type = &amp;quot;Body type:&amp;quot;,&lt;br /&gt;
    skin = &amp;quot;Skin:&amp;quot;,&lt;br /&gt;
    ass_type = &amp;quot;Ass type:&amp;quot;,&lt;br /&gt;
    foreskin = &amp;quot;Foreskin:&amp;quot;,&lt;br /&gt;
    chest_hair = &amp;quot;Chest hair:&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.PARAM_NAMES = {&lt;br /&gt;
	orientation = {&#039;orientation&#039;, &#039;sexual_orientation&#039;},&lt;br /&gt;
    hair = {&#039;hair&#039;, &#039;hair_color&#039;},&lt;br /&gt;
    hair_length = {&#039;hair_length&#039;, &#039;hair length&#039;, &#039;hairlength&#039;},&lt;br /&gt;
    eye_color = {&#039;eye color&#039;, &#039;eye_color&#039;, &#039;eyecolor&#039;, &#039;eyes&#039;, &#039;eye&#039;},&lt;br /&gt;
    body_type = {&#039;body type&#039;, &#039;bodytype&#039;, &#039;body_type&#039;, &#039;body&#039;},&lt;br /&gt;
    skin = {&#039;skin&#039;, &#039;skin_color&#039;, &#039;skin color&#039;, &#039;skincolor&#039;, &#039;skincomplexion&#039;},&lt;br /&gt;
    ass_type = {&#039;ass_type&#039;, &#039;ass type&#039;, &#039;ass&#039;},&lt;br /&gt;
    foreskin = {&#039;foreskin&#039;},&lt;br /&gt;
    chest_hair = {&#039;chest_hair&#039;, &#039;chest hair&#039;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.PARAM_ALIASES = {&lt;br /&gt;
	sexual_orientation = {&#039;orientation&#039;},&lt;br /&gt;
    hair_color = {&#039;hair&#039;},&lt;br /&gt;
    hair_length = {&#039;hair length&#039;, &#039;hairlength&#039;},&lt;br /&gt;
    eye_color = {&#039;eye&#039;, &#039;eyes&#039;, &#039;eyes_color&#039;},&lt;br /&gt;
    body_type = {&#039;body&#039;},&lt;br /&gt;
    skincomplexion = {&#039;skin&#039;, &#039;skin_color&#039;},&lt;br /&gt;
    ass_type = {&#039;ass&#039;},&lt;br /&gt;
    alias = {&#039;aliases&#039;},&lt;br /&gt;
    chest_hair = {&#039;chest&#039;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.PROPERTY_IDS = {&lt;br /&gt;
	orientation = &amp;quot;P347&amp;quot;,&lt;br /&gt;
    hair = &amp;quot;P162&amp;quot;,&lt;br /&gt;
    hair_length = &amp;quot;P166&amp;quot;,&lt;br /&gt;
    eye_color = &amp;quot;P386&amp;quot;,&lt;br /&gt;
    body_type = &amp;quot;P399&amp;quot;,&lt;br /&gt;
    skin = &amp;quot;P421&amp;quot;,&lt;br /&gt;
    ass_type = &amp;quot;P585&amp;quot;,&lt;br /&gt;
    foreskin = &amp;quot;P398&amp;quot;,&lt;br /&gt;
    chest_hair = &amp;quot;P589&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.VALIDATION_RULES = {&lt;br /&gt;
    ass_type = {&lt;br /&gt;
        mutually_exclusive = {&lt;br /&gt;
            groups = {&lt;br /&gt;
                {&lt;br /&gt;
                    values = {&amp;quot;Small Ass&amp;quot;, &amp;quot;Medium Ass&amp;quot;, &amp;quot;Big Ass&amp;quot;},&lt;br /&gt;
                    max_selected = 1&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            additional_allowed = {&amp;quot;Bubble Butt&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxBody&amp;diff=2968</id>
		<title>Module:BioboxBody</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxBody&amp;diff=2968"/>
		<updated>2025-03-19T00:06:14Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local PBD = require(&amp;#039;Module:PBD&amp;#039;) local PBDIB = require(&amp;#039;Module:PornBaseDataIB&amp;#039;) local BioboxUnits = require(&amp;#039;Module:BioboxUnits&amp;#039;) local CategoryMapping = require(&amp;#039;Module:BioboxCategoryMapping&amp;#039;)  local function isEmpty(value)     return value == nil or value == &amp;#039;&amp;#039; end  local function isPositive(value)     if isEmpty(value) then return false end     value = tostring(value):lower()     local positiveValues = {         [&amp;#039;yes&amp;#039;] = true,         [&amp;#039;y&amp;#039;] = true,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
local BioboxUnits = require(&#039;Module:BioboxUnits&#039;)&lt;br /&gt;
local CategoryMapping = require(&#039;Module:BioboxCategoryMapping&#039;)&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isPositive(value)&lt;br /&gt;
    if isEmpty(value) then return false end&lt;br /&gt;
    value = tostring(value):lower()&lt;br /&gt;
    local positiveValues = {&lt;br /&gt;
        [&#039;yes&#039;] = true,&lt;br /&gt;
        [&#039;y&#039;] = true,&lt;br /&gt;
        [&#039;ya&#039;] = true,&lt;br /&gt;
        [&#039;yep&#039;] = true,&lt;br /&gt;
        [&#039;true&#039;] = true,&lt;br /&gt;
        [&#039;1&#039;] = true&lt;br /&gt;
    }&lt;br /&gt;
    return positiveValues[value] or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getHeight(frame, args)&lt;br /&gt;
    local height = args.height&lt;br /&gt;
    if BioboxUnits.isValidHeight(height) then&lt;br /&gt;
        return BioboxUnits.formatHeight(frame, height, {})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local pbdHeight = PBD._property{[1] = &#039;P156&#039;, raw = true, multilanguage = true, [&#039;eid&#039;] = args.qid}&lt;br /&gt;
    local heightNum = BioboxUnits.extractNumber(pbdHeight)&lt;br /&gt;
    &lt;br /&gt;
    if heightNum then&lt;br /&gt;
        return BioboxUnits.formatHeight(frame, heightNum, {})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return &#039;N/A&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getWeight(frame, args)&lt;br /&gt;
    local weight = args.weight&lt;br /&gt;
    if BioboxUnits.isValidWeight(weight) then&lt;br /&gt;
        return BioboxUnits.formatWeight(frame, weight, {})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local pbdWeight = PBD._property{[1] = &#039;P159&#039;, raw = true, multilanguage = true, [&#039;eid&#039;] = args.qid}&lt;br /&gt;
    local weightNum = BioboxUnits.extractNumber(pbdWeight)&lt;br /&gt;
    &lt;br /&gt;
    if weightNum then&lt;br /&gt;
        return BioboxUnits.formatWeight(frame, weightNum, {})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return &#039;N/A&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPenisSize(frame, args)&lt;br /&gt;
    frame = frame or mw.getCurrentFrame()&lt;br /&gt;
    &lt;br /&gt;
    local penisSize = args[&#039;penis_size&#039;] or args[&#039;penis size&#039;]&lt;br /&gt;
    if not isEmpty(penisSize) then&lt;br /&gt;
        local childArgs = {}&lt;br /&gt;
        childArgs[1] = tostring(penisSize)&lt;br /&gt;
        childArgs[&amp;quot;break&amp;quot;] = &amp;quot;y&amp;quot;&lt;br /&gt;
        childArgs[&amp;quot;linkspan&amp;quot;] = &amp;quot;y&amp;quot;&lt;br /&gt;
        return BioboxUnits.formatPenisSize(frame:newChild{args = childArgs})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local pbdPenisSize = PBD._property{[1] = &#039;P161&#039;, raw = true, multilanguage = true, [&#039;eid&#039;] = args.qid}&lt;br /&gt;
    if not isEmpty(pbdPenisSize) then&lt;br /&gt;
        local childArgs = {}&lt;br /&gt;
        childArgs[1] = tostring(pbdPenisSize)&lt;br /&gt;
        childArgs[&amp;quot;break&amp;quot;] = &amp;quot;y&amp;quot;&lt;br /&gt;
        childArgs[&amp;quot;linkspan&amp;quot;] = &amp;quot;y&amp;quot;&lt;br /&gt;
        return BioboxUnits.formatPenisSize(frame:newChild{args = childArgs})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return &#039;N/A&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatHair(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local hairValues = state:collectNumberedParams(args, &amp;quot;hair_color&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #hairValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P162&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(hairValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #hairValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = state:formatFeatureList(hairValues, &#039;hair&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if displayValue then&lt;br /&gt;
            local hairLengthValue = args.hair_length&lt;br /&gt;
            if isEmpty(hairLengthValue) and args.qid then&lt;br /&gt;
                hairLengthValue = PBD._property{&lt;br /&gt;
                    [1] = &#039;P166&#039;,&lt;br /&gt;
                    raw = true,&lt;br /&gt;
                    multilanguage = true,&lt;br /&gt;
                    [&#039;eid&#039;] = args.qid&lt;br /&gt;
                }&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            if not isEmpty(hairLengthValue) then&lt;br /&gt;
                hairLengthValue = mw.ustring.lower(hairLengthValue)&lt;br /&gt;
                for _, mapping in ipairs(CategoryMapping.MAPPINGS.hair_length) do&lt;br /&gt;
                    for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                        if mw.ustring.lower(alias) == hairLengthValue then&lt;br /&gt;
                            displayValue = displayValue .. &#039; (&#039; .. mapping.display .. &#039;)&#039;&lt;br /&gt;
                            break&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Hair:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;hair&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatEyeColor(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local eyeValues = state:collectNumberedParams(args, &amp;quot;eye_color&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #eyeValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P386&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(eyeValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #eyeValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = state:formatFeatureList(eyeValues, &#039;eye_color&#039;)&lt;br /&gt;
        if displayValue then&lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Eye color:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;eye_color&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatBodyType(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local bodyValues = state:collectNumberedParams(args, &amp;quot;body_type&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #bodyValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P399&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(bodyValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #bodyValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = state:formatFeatureList(bodyValues, &#039;body_type&#039;)&lt;br /&gt;
        if displayValue then&lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Body type:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;body_type&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatSkin(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local skinValues = state:collectNumberedParams(args, &amp;quot;skincomplexion&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #skinValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P421&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(skinValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #skinValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = state:formatFeatureList(skinValues, &#039;skin&#039;)&lt;br /&gt;
        if displayValue then&lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Skin:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;skin&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatAssType(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local assTypeValues = {}&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(args.ass_type) then&lt;br /&gt;
        table.insert(assTypeValues, args.ass_type)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for i = 2, 10 do&lt;br /&gt;
        local paramName = &amp;quot;ass_type&amp;quot; .. i&lt;br /&gt;
        if not isEmpty(args[paramName]) then&lt;br /&gt;
            table.insert(assTypeValues, args[paramName])&lt;br /&gt;
        else&lt;br /&gt;
            break&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #assTypeValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P585&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(assTypeValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #assTypeValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = state:formatFeatureList(assTypeValues, &#039;ass_type&#039;)&lt;br /&gt;
        if displayValue then&lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Ass type:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;ass_type&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatForeskin(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local value = args.foreskin&lt;br /&gt;
    if isEmpty(value) and args.qid then&lt;br /&gt;
        value = PBD._property{&lt;br /&gt;
            [1] = &#039;P398&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(value) then&lt;br /&gt;
        local displayValue = state:formatFeatureList({value}, &#039;foreskin&#039;)&lt;br /&gt;
        if displayValue then&lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Foreskin:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;foreskin&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatChestHair(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local value = args.chest_hair&lt;br /&gt;
    if not value and args.qid then&lt;br /&gt;
        value = PBD._property{&lt;br /&gt;
            [1] = &#039;P589&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not isEmpty(value) then&lt;br /&gt;
        value = mw.ustring.lower(value)&lt;br /&gt;
        local mappings = CategoryMapping.MAPPINGS.chest_hair&lt;br /&gt;
        local match = nil&lt;br /&gt;
        for _, mapping in ipairs(mappings) do&lt;br /&gt;
            for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                if mw.ustring.lower(alias) == value then&lt;br /&gt;
                    match = mapping&lt;br /&gt;
                    break&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if match then break end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if match then&lt;br /&gt;
            local displayValue = &#039;[[:Category:&#039; .. match.category .. &#039;|&#039; .. match.display .. &#039;]] &amp;lt;small&amp;gt;([[:Category:Chest hair|Legend]])&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
            if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                displayValue = displayValue .. &#039;[[Category:&#039; .. match.category .. &#039;]]&#039;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = state:formatField(&lt;br /&gt;
                &amp;quot;Chest hair:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;chest_hair&amp;quot;,&lt;br /&gt;
                rowIndex&lt;br /&gt;
            )&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatTattoo(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local tattooValue = args.tattoo&lt;br /&gt;
    if not isEmpty(tattooValue) then&lt;br /&gt;
        if isPositive(tattooValue) then&lt;br /&gt;
            local displayValue = &#039;[[:Category:Performers with Tattoos|Yes]]&#039;&lt;br /&gt;
            if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                displayValue = displayValue .. &#039;[[Category:Performers with Tattoos]]&#039;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = state:formatField(&#039;Tattoo:&#039;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &#039;tattoo&#039;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatBodySection(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;Body\&#039;\&#039;\&#039;&#039;, state.STYLES.SECTION_HEADER)&lt;br /&gt;
    &lt;br /&gt;
    section[#section + 1] = &#039;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&#039;&lt;br /&gt;
    section[#section + 1] = &#039;&amp;lt;div style=&amp;quot;width: 100%; border: 1px white; background:#657D91; padding: 1px 0; display: grid; grid-template-columns: auto auto auto; color: white; text-align: center;&amp;quot;&amp;gt;&#039;&lt;br /&gt;
    section[#section + 1] = &#039;&amp;lt;div&amp;gt;[[File:Height attribute symbol.png|40px|link=Height]]&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    section[#section + 1] = &#039;&amp;lt;div&amp;gt;[[File:Weight attribute symbol.png|40px|link=Weight]]&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    section[#section + 1] = &#039;&amp;lt;div&amp;gt;[[File:Penis size attribute symbol.png|40px|link=Penis size]]&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    local height = getHeight(frame, args)&lt;br /&gt;
    local weight = getWeight(frame, args)&lt;br /&gt;
    local penisSize = getPenisSize(frame, args)&lt;br /&gt;
&lt;br /&gt;
    section[#section + 1] = string.format(&lt;br /&gt;
        &#039;&amp;lt;div&amp;gt;\&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;\&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;\&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;, &lt;br /&gt;
        height, weight, penisSize&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    local hairSection, newRowIndex = p.formatHair(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(hairSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local eyeSection, newRowIndex = p.formatEyeColor(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(eyeSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local bodySection, newRowIndex = p.formatBodyType(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(bodySection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local skinSection, newRowIndex = p.formatSkin(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(skinSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local assTypeSection, newRowIndex = p.formatAssType(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(assTypeSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local foreskinSection, newRowIndex = p.formatForeskin(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(foreskinSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local chestHairSection, newRowIndex = p.formatChestHair(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(chestHairSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local tattooSection, newRowIndex = p.formatTattoo(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(tattooSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    return table.concat(section, &#039;\n&#039;), rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2967</id>
		<title>Module:Biobox</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:Biobox&amp;diff=2967"/>
		<updated>2025-03-19T00:05:50Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
local CategoryMapping = require(&#039;Module:BioboxCategoryMapping&#039;)&lt;br /&gt;
local BioboxPersonal = require(&#039;Module:BioboxPersonal&#039;)&lt;br /&gt;
local BioboxBody = require(&#039;Module:BioboxBody&#039;)&lt;br /&gt;
local BioboxPersonalPages = require(&#039;Module:BioboxPersonalPages&#039;)&lt;br /&gt;
local BioboxDatabases = require(&#039;Module:BioboxDatabases&#039;)&lt;br /&gt;
local BioboxSharing = require(&#039;Module:BioboxSharing&#039;)&lt;br /&gt;
&lt;br /&gt;
local ALIAS_TO_PRIMARY = {}&lt;br /&gt;
do&lt;br /&gt;
    for primary, aliases in pairs(CategoryMapping.PARAM_ALIASES) do&lt;br /&gt;
        for _, alias in ipairs(aliases) do&lt;br /&gt;
            ALIAS_TO_PRIMARY[alias] = primary&lt;br /&gt;
        end&lt;br /&gt;
        ALIAS_TO_PRIMARY[primary] = primary&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local STYLES = {&lt;br /&gt;
    INFOBOX = &#039;class=&amp;quot;infoboxnew&amp;quot; align=&amp;quot;left&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;text-align:center; font-size:88%; line-height:1.5em; white-space:normal;&amp;quot;&#039;,&lt;br /&gt;
    HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:112%;&amp;quot;&#039;,&lt;br /&gt;
    LABEL = &#039;width:40%; padding-left:0.1em; overflow-wrap: break-word; font-weight:normal; text-align:left;&#039;,&lt;br /&gt;
    SECTION_HEADER = &#039;style=&amp;quot;color:white; text-align:center; border: 1px solid white; background:#657D91; font-size:100%;&amp;quot;&#039;,&lt;br /&gt;
    ODD_ROW = &#039;background-color:#F7F7F7;&#039;,&lt;br /&gt;
    EVEN_ROW = &#039;background-color:white;&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isPositive(value)&lt;br /&gt;
    if isEmpty(value) then return false end&lt;br /&gt;
    value = tostring(value):lower()&lt;br /&gt;
    local positiveValues = {&lt;br /&gt;
        [&#039;yes&#039;] = true,&lt;br /&gt;
        [&#039;y&#039;] = true,&lt;br /&gt;
        [&#039;ya&#039;] = true,&lt;br /&gt;
        [&#039;yep&#039;] = true,&lt;br /&gt;
        [&#039;true&#039;] = true,&lt;br /&gt;
        [&#039;1&#039;] = true&lt;br /&gt;
    }&lt;br /&gt;
    return positiveValues[value] or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local POSITIVE_ONLY_FIELDS = {&lt;br /&gt;
    [&#039;tattoo&#039;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function normalizeKeys(args)&lt;br /&gt;
    local normalized = {}&lt;br /&gt;
    local seenParams = {}&lt;br /&gt;
    local processedAliases = {}&lt;br /&gt;
    local firstOccurrence = {}&lt;br /&gt;
    &lt;br /&gt;
    for key, value in pairs(args) do&lt;br /&gt;
        local normalizedKey = tostring(key):gsub(&amp;quot; &amp;quot;, &amp;quot;_&amp;quot;):lower()&lt;br /&gt;
        local primaryKey = ALIAS_TO_PRIMARY[normalizedKey] or normalizedKey&lt;br /&gt;
        &lt;br /&gt;
        if not firstOccurrence[primaryKey] then&lt;br /&gt;
            firstOccurrence[primaryKey] = #seenParams + 1&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        table.insert(seenParams, {&lt;br /&gt;
            key = key,&lt;br /&gt;
            value = value,&lt;br /&gt;
            normalizedKey = normalizedKey,&lt;br /&gt;
            primaryKey = primaryKey,&lt;br /&gt;
            position = firstOccurrence[primaryKey]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(seenParams, function(a, b) &lt;br /&gt;
        return a.position &amp;lt; b.position&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    for _, param in ipairs(seenParams) do&lt;br /&gt;
        local primaryKey = param.primaryKey&lt;br /&gt;
        &lt;br /&gt;
        if not processedAliases[primaryKey] then&lt;br /&gt;
            if not isEmpty(param.value) then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
                processedAliases[primaryKey] = true&lt;br /&gt;
            elseif not normalized[primaryKey] then&lt;br /&gt;
                normalized[primaryKey] = param.value&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return normalized&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isNumeric(value)&lt;br /&gt;
    if type(value) == &amp;quot;number&amp;quot; then return true end&lt;br /&gt;
    if type(value) ~= &amp;quot;string&amp;quot; then return false end&lt;br /&gt;
    return tonumber(value) ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function shouldDisplayField(fieldName, value)&lt;br /&gt;
    if not isEmpty(value) then&lt;br /&gt;
        if POSITIVE_ONLY_FIELDS[fieldName] then&lt;br /&gt;
            return isPositive(value)&lt;br /&gt;
        end&lt;br /&gt;
        return true&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPBDIBValue(propertyId, args, options)&lt;br /&gt;
    return PBDIB._getValue({&lt;br /&gt;
        [1] = propertyId,&lt;br /&gt;
        qid = args.qid,&lt;br /&gt;
        format = options and options.format,&lt;br /&gt;
        fpbd = &amp;quot;ALL&amp;quot;&lt;br /&gt;
    })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractNumber(str)&lt;br /&gt;
    if type(str) == &#039;number&#039; then &lt;br /&gt;
        return str &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if type(str) ~= &#039;string&#039; or str == &#039;&#039; then &lt;br /&gt;
        return nil &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local num = tonumber(str)&lt;br /&gt;
    if num then return num end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)[%s%a]*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+%.?%d*)%a*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num) end&lt;br /&gt;
    &lt;br /&gt;
    num = str:match(&amp;quot;^%s*(%d+,%d+)%s*$&amp;quot;)&lt;br /&gt;
    if num then return tonumber(num:gsub(&amp;quot;,&amp;quot;, &amp;quot;.&amp;quot;)) end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local State = {}&lt;br /&gt;
&lt;br /&gt;
function State:new()&lt;br /&gt;
    local state = {}&lt;br /&gt;
    setmetatable(state, self)&lt;br /&gt;
    self.__index = self&lt;br /&gt;
    state.STYLES = STYLES&lt;br /&gt;
    return state&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:getRowStyle(index)&lt;br /&gt;
    return index % 2 == 1 and STYLES.ODD_ROW or STYLES.EVEN_ROW &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:splitByComma(str)&lt;br /&gt;
    if not str then return {} end&lt;br /&gt;
    local result = {}&lt;br /&gt;
    for value in str:gmatch(&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
        table.insert(result, mw.text.trim(value))&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatCategoryLink(value, prefix, displayText)&lt;br /&gt;
    if isEmpty(value) then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local normalized = mw.text.trim(value):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
    displayText = displayText or normalized&lt;br /&gt;
    &lt;br /&gt;
    local result = string.format(&amp;quot;[[:Category:%s%s|%s]]&amp;quot;,&lt;br /&gt;
        prefix,&lt;br /&gt;
        normalized,&lt;br /&gt;
        displayText&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        result = result .. string.format(&amp;quot;[[Category:%s%s]]&amp;quot;,&lt;br /&gt;
            prefix,&lt;br /&gt;
            normalized&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:collectNumberedParams(args, baseParam)&lt;br /&gt;
    local values = {}&lt;br /&gt;
    local numbered = {}&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(args[baseParam]) then&lt;br /&gt;
        table.insert(values, {index = 0, value = args[baseParam]})&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for param, value in pairs(args) do&lt;br /&gt;
        local index = param:match(&amp;quot;^&amp;quot; .. baseParam .. &amp;quot;(%d+)$&amp;quot;)&lt;br /&gt;
        if index and not isEmpty(value) then&lt;br /&gt;
            index = tonumber(index)&lt;br /&gt;
            if index and index &amp;gt; 0 and index &amp;lt; 100 then&lt;br /&gt;
                table.insert(values, {index = index, value = value})&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    table.sort(values, function(a, b) return a.index &amp;lt; b.index end)&lt;br /&gt;
    &lt;br /&gt;
    local result = {}&lt;br /&gt;
    for _, item in ipairs(values) do&lt;br /&gt;
        table.insert(result, item.value)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatField(label, value, fieldName, index)&lt;br /&gt;
    if isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if POSITIVE_ONLY_FIELDS[fieldName] and not isPositive(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local rowStyle = self:getRowStyle(index)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left;&amp;quot; | %s&#039;, &lt;br /&gt;
        rowStyle,&lt;br /&gt;
        STYLES.LABEL,&lt;br /&gt;
        label,&lt;br /&gt;
        rowStyle,&lt;br /&gt;
        value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function State:formatFeatureList(values, featureType)&lt;br /&gt;
    if not values or #values == 0 then return nil end&lt;br /&gt;
    &lt;br /&gt;
    local displayValues = {}&lt;br /&gt;
    local addedCategories = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;foreskin&#039; then&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local feature = mw.text.trim(value):lower()&lt;br /&gt;
                local mapping = CategoryMapping.MAPPINGS[featureType][feature]&lt;br /&gt;
                &lt;br /&gt;
                if mapping then&lt;br /&gt;
                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                        mapping.category,&lt;br /&gt;
                        mapping.display&lt;br /&gt;
                    )&lt;br /&gt;
                    &lt;br /&gt;
                    if isMainNamespace then&lt;br /&gt;
                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                            mapping.category&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    return result&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if featureType == &#039;ass_type&#039; then&lt;br /&gt;
        local foundMappings = {}&lt;br /&gt;
        local hasMainType = false&lt;br /&gt;
        &lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                local isMainSize = mapping.priority &amp;gt;= 1 and mapping.priority &amp;lt;= 3&lt;br /&gt;
&lt;br /&gt;
                                if (not isMainSize or not hasMainType) and not addedCategories[mapping.category] then&lt;br /&gt;
                                    table.insert(foundMappings, mapping)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainSize then&lt;br /&gt;
                                        hasMainType = true&lt;br /&gt;
                                    end&lt;br /&gt;
                                end&lt;br /&gt;
                            end&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;
        table.sort(foundMappings, function(a, b)&lt;br /&gt;
            return a.priority &amp;lt; b.priority&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        for i, mapping in ipairs(foundMappings) do&lt;br /&gt;
            if i &amp;gt; 1 then&lt;br /&gt;
                table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                mapping.category,&lt;br /&gt;
                mapping.display&lt;br /&gt;
            )&lt;br /&gt;
            &lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                    mapping.category&lt;br /&gt;
                )&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            table.insert(displayValues, result)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
    else&lt;br /&gt;
        for _, value in ipairs(values) do&lt;br /&gt;
            if value then&lt;br /&gt;
                local features = self:splitByComma(value)&lt;br /&gt;
                for _, feature in ipairs(features) do&lt;br /&gt;
                    feature = mw.text.trim(feature):lower()&lt;br /&gt;
                    &lt;br /&gt;
                    for _, mapping in ipairs(CategoryMapping.MAPPINGS[featureType]) do&lt;br /&gt;
                        local found = false&lt;br /&gt;
                        for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                            if feature == alias:lower() then&lt;br /&gt;
                                found = true&lt;br /&gt;
                                if not addedCategories[mapping.category] then&lt;br /&gt;
                                    if #displayValues &amp;gt; 0 then&lt;br /&gt;
                                        table.insert(displayValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;,&lt;br /&gt;
                                        mapping.category,&lt;br /&gt;
                                        mapping.display&lt;br /&gt;
                                    )&lt;br /&gt;
                                    &lt;br /&gt;
                                    if isMainNamespace then&lt;br /&gt;
                                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                                            mapping.category&lt;br /&gt;
                                        )&lt;br /&gt;
                                    end&lt;br /&gt;
                                    &lt;br /&gt;
                                    table.insert(displayValues, result)&lt;br /&gt;
                                    addedCategories[mapping.category] = true&lt;br /&gt;
                                end&lt;br /&gt;
                                break&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                        if found then break end&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;
    if #displayValues &amp;gt; 0 then&lt;br /&gt;
        return table.concat(displayValues)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    if not next(args) then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    args = normalizeKeys(args)&lt;br /&gt;
    &lt;br /&gt;
    if not args.qid or args.qid == &amp;quot;&amp;quot; then&lt;br /&gt;
        args.qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local title = mw.title.getCurrentTitle().text&lt;br /&gt;
    local state = State:new()&lt;br /&gt;
&lt;br /&gt;
    local personalSection, rowIndex = BioboxPersonal.formatPersonalSection(state, args, title)&lt;br /&gt;
    local bodySection = BioboxBody.formatBodySection(state, args, rowIndex)&lt;br /&gt;
    &lt;br /&gt;
    local personalPagesSection, ppRowIndex = BioboxPersonalPages.formatPersonalPagesSection(state, args, rowIndex)&lt;br /&gt;
    local databasesSection, dbRowIndex = BioboxDatabases.formatDatabasesSection(state, args, ppRowIndex)&lt;br /&gt;
    local sharingSection, shRowIndex = BioboxSharing.formatSharingSection(state, args, dbRowIndex)&lt;br /&gt;
    &lt;br /&gt;
    local result = personalSection .. &#039;\n&#039; .. bodySection&lt;br /&gt;
    &lt;br /&gt;
    if #personalPagesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(personalPagesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #databasesSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(databasesSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #sharingSection &amp;gt; 0 then&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(sharingSection, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if args.qid then&lt;br /&gt;
        local pbcLink = mw.wikibase.getSitelink(args.qid)&lt;br /&gt;
        if pbcLink then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Pbd.svg | 45px | alt=&#039; .. args.qid .. &#039; | link=pbd:&#039; .. args.qid .. &#039;]]&amp;amp;nbsp;[[:pbd:&#039; .. args.qid .. &#039;|&#039; .. pbcLink .. &#039;]]&amp;amp;nbsp;([[:pbd:&#039; .. args.qid .. &#039;|&#039; .. args.qid .. &#039;]])&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local newFrame = {&lt;br /&gt;
            args = {&lt;br /&gt;
                qid = args.qid,&lt;br /&gt;
                wiki = &amp;quot;pbcimagerepo&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        local imageRepoLink = PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        &lt;br /&gt;
        if imageRepoLink and imageRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Image-icon.svg | 18px | link=:&#039; .. imageRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. imageRepoLink .. &#039;| PBC Image Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        newFrame.args.wiki = &amp;quot;pbcvideorepo&amp;quot;&lt;br /&gt;
        local videoRepoLink = PBDIB.getSiteLink(newFrame)&lt;br /&gt;
        &lt;br /&gt;
        if videoRepoLink and videoRepoLink ~= &#039;&#039; then&lt;br /&gt;
            result = result .. &#039;\n|-class=&amp;quot;stop-section-collapse&amp;quot;\n! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F0E68C;text-align:center;&amp;quot; | [[File:Video-icon.svg | 18px | link=:&#039; .. videoRepoLink .. &#039;]]&amp;amp;nbsp;[[:&#039; .. videoRepoLink .. &#039;| PBC Video Repository]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    result = result .. &#039;\n|}&#039;&lt;br /&gt;
&lt;br /&gt;
    local categories = BioboxPersonal.getPBDCategories(args)&lt;br /&gt;
    if #categories &amp;gt; 0 then&lt;br /&gt;
        local categoryStrings = {}&lt;br /&gt;
        for _, category in ipairs(categories) do&lt;br /&gt;
            table.insert(categoryStrings, &#039;[[Category:&#039; .. category .. &#039;]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
        result = result .. &#039;\n&#039; .. table.concat(categoryStrings, &#039;\n&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonal&amp;diff=2966</id>
		<title>Module:BioboxPersonal</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:BioboxPersonal&amp;diff=2966"/>
		<updated>2025-03-19T00:05:31Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;local p = {}  local PBD = require(&amp;#039;Module:PBD&amp;#039;) local PBDIB = require(&amp;#039;Module:PornBaseDataIB&amp;#039;) local GetBirthDate = require(&amp;#039;Module:GetBirthDate&amp;#039;) local BirthDateAndAge = require(&amp;#039;Module:Birth date and age&amp;#039;) local Pornbasedata = require(&amp;#039;Module:Pornbasedata&amp;#039;) local CategoryMapping = require(&amp;#039;Module:BioboxCategoryMapping&amp;#039;)  local function isEmpty(value)     return value == nil or value == &amp;#039;&amp;#039; end  local function isPositive(value)     if isEmpty(value) then return false end...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local PBD = require(&#039;Module:PBD&#039;)&lt;br /&gt;
local PBDIB = require(&#039;Module:PornBaseDataIB&#039;)&lt;br /&gt;
local GetBirthDate = require(&#039;Module:GetBirthDate&#039;)&lt;br /&gt;
local BirthDateAndAge = require(&#039;Module:Birth date and age&#039;)&lt;br /&gt;
local Pornbasedata = require(&#039;Module:Pornbasedata&#039;)&lt;br /&gt;
local CategoryMapping = require(&#039;Module:BioboxCategoryMapping&#039;)&lt;br /&gt;
&lt;br /&gt;
local function isEmpty(value)&lt;br /&gt;
    return value == nil or value == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isPositive(value)&lt;br /&gt;
    if isEmpty(value) then return false end&lt;br /&gt;
    value = tostring(value):lower()&lt;br /&gt;
    local positiveValues = {&lt;br /&gt;
        [&#039;yes&#039;] = true,&lt;br /&gt;
        [&#039;y&#039;] = true,&lt;br /&gt;
        [&#039;ya&#039;] = true,&lt;br /&gt;
        [&#039;yep&#039;] = true,&lt;br /&gt;
        [&#039;true&#039;] = true,&lt;br /&gt;
        [&#039;1&#039;] = true&lt;br /&gt;
    }&lt;br /&gt;
    return positiveValues[value] or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPBDValue(propertyId, args, directValue)&lt;br /&gt;
    if isEmpty(directValue) then&lt;br /&gt;
        return PBD._property{propertyId, &#039;raw&#039;, &#039;multilanguage&#039;, [&#039;eid&#039;] = args.qid}&lt;br /&gt;
    end&lt;br /&gt;
    return directValue&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processCountryValue(value)&lt;br /&gt;
    if not value then return nil end&lt;br /&gt;
    &lt;br /&gt;
    value = mw.text.trim(value)&lt;br /&gt;
    &lt;br /&gt;
    if value == &#039;&#039; then return nil end&lt;br /&gt;
    &lt;br /&gt;
    value = value:gsub(&#039;^{{&#039;, &#039;&#039;):gsub(&#039;}}$&#039;, &#039;&#039;)&lt;br /&gt;
    value = mw.text.trim(value)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;{{flagcountry|%s}}&#039;, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function calculateAge(birthYear, birthMonth, birthDay, deathYear, deathMonth, deathDay)&lt;br /&gt;
    birthYear = tonumber(birthYear)&lt;br /&gt;
    deathYear = tonumber(deathYear)&lt;br /&gt;
    birthMonth = tonumber(birthMonth)&lt;br /&gt;
    deathMonth = tonumber(deathMonth)&lt;br /&gt;
    birthDay = tonumber(birthDay)&lt;br /&gt;
    deathDay = tonumber(deathDay)&lt;br /&gt;
    &lt;br /&gt;
    if birthYear and deathYear and birthYear &amp;gt; 0 and deathYear &amp;gt; 0 then&lt;br /&gt;
        local age = deathYear - birthYear&lt;br /&gt;
        if birthMonth and deathMonth then&lt;br /&gt;
            if deathMonth &amp;lt; birthMonth or &lt;br /&gt;
               (deathMonth == birthMonth and birthDay and deathDay and deathDay &amp;lt; birthDay) then&lt;br /&gt;
                age = age - 1&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if age &amp;gt;= 0 then&lt;br /&gt;
            return string.format(&amp;quot; (aged %d)&amp;quot;, age)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getImage(args)&lt;br /&gt;
    if not isEmpty(args.image) then&lt;br /&gt;
        return string.format(&#039;[[File:%s|256px]]&#039;, args.image)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local qid = args.qid&lt;br /&gt;
    if isEmpty(qid) then&lt;br /&gt;
        qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if qid then&lt;br /&gt;
        local image = PBDIB._getValue({&lt;br /&gt;
            [1] = &amp;quot;P470&amp;quot;,&lt;br /&gt;
            qid = qid,&lt;br /&gt;
            rank = &amp;quot;best&amp;quot;,&lt;br /&gt;
            name = &amp;quot;image&amp;quot;,&lt;br /&gt;
            fpbd = &amp;quot;ALL&amp;quot;,&lt;br /&gt;
            osd = &amp;quot;no&amp;quot;,&lt;br /&gt;
            noicon = &amp;quot;yes&amp;quot;,&lt;br /&gt;
            maxvals = 1&lt;br /&gt;
        })&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(image) then&lt;br /&gt;
            return string.format([[%s&lt;br /&gt;
            &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;]], &lt;br /&gt;
            mw.ustring.format(&lt;br /&gt;
                &#039;[[File:%s|256px]]&#039;,&lt;br /&gt;
                image&lt;br /&gt;
            ),&lt;br /&gt;
            PBDIB._getValue({&lt;br /&gt;
                qid = qid,&lt;br /&gt;
                fpbd = &amp;quot;ALL&amp;quot;,&lt;br /&gt;
                osd = &amp;quot;no&amp;quot;,&lt;br /&gt;
                noicon = &amp;quot;y&amp;quot;,&lt;br /&gt;
                qual = &amp;quot;P523&amp;quot;,&lt;br /&gt;
                qualsonly = &amp;quot;yes&amp;quot;,&lt;br /&gt;
                maxvals = 1&lt;br /&gt;
            }) or &#039;&#039;&lt;br /&gt;
        )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return &#039;[[File:NoImageAvailable.png|256px|link=PBC:Images]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatBirthDate(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local birthDay = args.birth_day ~= &amp;quot;&amp;quot; and args.birth_day or nil&lt;br /&gt;
    local birthMonth = args.birth_month ~= &amp;quot;&amp;quot; and args.birth_month or nil&lt;br /&gt;
    local birthYear = args.birth_year ~= &amp;quot;&amp;quot; and args.birth_year or nil&lt;br /&gt;
    local birthRef = args.birth_ref&lt;br /&gt;
    &lt;br /&gt;
    local hasDeathDate = false&lt;br /&gt;
    if (args.death_year and args.death_year ~= &amp;quot;&amp;quot;)&lt;br /&gt;
       or (args.death_month and args.death_month ~= &amp;quot;&amp;quot;)&lt;br /&gt;
       or (args.death_day and args.death_day ~= &amp;quot;&amp;quot;)&lt;br /&gt;
    then&lt;br /&gt;
        hasDeathDate = true&lt;br /&gt;
    elseif args.qid then&lt;br /&gt;
        local deathDate = PBD._property{&lt;br /&gt;
            [1] = &#039;P247&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        hasDeathDate = deathDate and deathDate ~= &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not (birthDay or birthMonth or birthYear) and args.qid then&lt;br /&gt;
        local birthDate = PBD._property{&lt;br /&gt;
            [1] = &#039;P9&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if birthDate and birthDate ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            &lt;br /&gt;
            birthDay = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P9&#039;,&lt;br /&gt;
                [2] = &#039;day&#039;  &lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            birthMonth = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P9&#039;, &lt;br /&gt;
                [2] = &#039;month&#039;&lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            birthYear = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P9&#039;,&lt;br /&gt;
                [2] = &#039;year&#039;&lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            birthDay = birthDay ~= &amp;quot;&amp;quot; and tonumber(birthDay) or nil&lt;br /&gt;
            birthMonth = birthMonth ~= &amp;quot;&amp;quot; and tonumber(birthMonth) or nil  &lt;br /&gt;
            birthYear = birthYear ~= &amp;quot;&amp;quot; and tonumber(birthYear) or nil&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not (birthDay or birthMonth or birthYear) then&lt;br /&gt;
        return {}, rowIndex&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local birthDateDisplay = &amp;quot;&amp;quot;&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
&lt;br /&gt;
    if birthMonth and birthDay and birthYear then&lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local success, result = pcall(function()&lt;br /&gt;
            local monthTime = {year = 2000, month = tonumber(birthMonth), day = 1}&lt;br /&gt;
            local monthName = os.date(&#039;%B&#039;, os.time(monthTime))&lt;br /&gt;
            &lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_%s_birthdays]]&amp;quot;, monthName, birthDay)&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_births]]&amp;quot;, birthYear)&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            if hasDeathDate then&lt;br /&gt;
                local basicDate = string.format(&amp;quot;[[:Category:%s %s birthdays|%s %s]] [[:Category:%s births|%s]]&amp;quot;,&lt;br /&gt;
                    monthName, birthDay,&lt;br /&gt;
                    birthDay, monthName,&lt;br /&gt;
                    birthYear, birthYear&lt;br /&gt;
                )&lt;br /&gt;
                &lt;br /&gt;
                local childFrame = frame:newChild{&lt;br /&gt;
                    args = { birthYear, birthMonth, birthDay }&lt;br /&gt;
                }&lt;br /&gt;
                local zodiacResult = BirthDateAndAge.main(childFrame)&lt;br /&gt;
                local zodiacPart = zodiacResult:match(&amp;quot;&amp;lt;br&amp;gt;Astrology:.*$&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                return basicDate .. (zodiacPart or &amp;quot;&amp;quot;)&lt;br /&gt;
            else&lt;br /&gt;
                local childFrame = frame:newChild{&lt;br /&gt;
                    args = { birthYear, birthMonth, birthDay }&lt;br /&gt;
                }&lt;br /&gt;
                return BirthDateAndAge.main(childFrame)&lt;br /&gt;
            end&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if success and result ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            birthDateDisplay = result .. table.concat(categories, &amp;quot;&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;Birth:\&#039;\&#039;\&#039;\n| style=&amp;quot;text-align:left;&amp;quot; | %s&#039;,&lt;br /&gt;
                state:getRowStyle(rowIndex),&lt;br /&gt;
                state.STYLES.LABEL,&lt;br /&gt;
                birthDateDisplay&lt;br /&gt;
            )&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
            return section, rowIndex&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local monthTime = {year = 2000, month = tonumber(birthMonth), day = 1}&lt;br /&gt;
        local monthName = os.date(&#039;%B&#039;, os.time(monthTime))&lt;br /&gt;
        birthDateDisplay = string.format(&amp;quot;[[:Category:%s %s birthdays|%s %s]] [[:Category:%s births|%s]]&amp;quot;,&lt;br /&gt;
            monthName, birthDay,&lt;br /&gt;
            birthDay, monthName,&lt;br /&gt;
            birthYear, birthYear&lt;br /&gt;
        )&lt;br /&gt;
        &lt;br /&gt;
        if isMainNamespace then&lt;br /&gt;
            categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_%s_birthdays]]&amp;quot;, monthName, birthDay)&lt;br /&gt;
            categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_births]]&amp;quot;, birthYear)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local zodiacSuccess, zodiacResult = pcall(function()&lt;br /&gt;
            return BirthDateAndAge.main{[1]=birthYear, [2]=birthMonth, [3]=birthDay}&lt;br /&gt;
        end)&lt;br /&gt;
        &lt;br /&gt;
        if zodiacSuccess then&lt;br /&gt;
            local zodiacPart = zodiacResult:match(&amp;quot;&amp;lt;br&amp;gt;Astrology:.*$&amp;quot;)&lt;br /&gt;
            if zodiacPart then&lt;br /&gt;
                birthDateDisplay = birthDateDisplay .. zodiacPart&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif birthMonth and birthYear then&lt;br /&gt;
        local ok, monthName&lt;br /&gt;
        local monthTime = {year = 2000, month = tonumber(birthMonth), day = 1}&lt;br /&gt;
        ok, monthName = pcall(os.date, &#039;%B&#039;, os.time(monthTime))&lt;br /&gt;
        &lt;br /&gt;
        if ok and monthName then&lt;br /&gt;
            birthDateDisplay = string.format(&amp;quot;[[:Category:%s birthdays|%s]] [[:Category:%s births|%s]]%s&amp;quot;, &lt;br /&gt;
                monthName,&lt;br /&gt;
                monthName,&lt;br /&gt;
                birthYear,&lt;br /&gt;
                birthYear,&lt;br /&gt;
                not hasDeathDate and string.format(&amp;quot; (≈%d years)&amp;quot;, os.date(&#039;%Y&#039;) - birthYear) or &amp;quot;&amp;quot;&lt;br /&gt;
            )&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s births]]&amp;quot;, birthYear)&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s birthdays]]&amp;quot;, monthName)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif birthYear then&lt;br /&gt;
        local appendAge = not hasDeathDate and string.format(&amp;quot; (≈%d years)&amp;quot;, os.date(&#039;%Y&#039;) - birthYear) or &amp;quot;&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        birthDateDisplay = string.format(&amp;quot;[[:Category:%s births|%s]]%s&amp;quot;,&lt;br /&gt;
            birthYear,&lt;br /&gt;
            birthYear,&lt;br /&gt;
            appendAge&lt;br /&gt;
        )&lt;br /&gt;
        if isMainNamespace then&lt;br /&gt;
            categories[#categories + 1] = string.format(&amp;quot;[[Category:%s births]]&amp;quot;, birthYear)&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif birthMonth and birthDay then&lt;br /&gt;
        local monthTime = {year = 2000, month = birthMonth, day = 1}&lt;br /&gt;
        local ok, monthName = pcall(os.date, &#039;%B&#039;, os.time(monthTime))&lt;br /&gt;
        &lt;br /&gt;
        if ok and monthName then&lt;br /&gt;
            birthDateDisplay = string.format(&amp;quot;[[:Category:%s %s birthdays|%s %s]]&amp;quot;, &lt;br /&gt;
                monthName, birthDay,&lt;br /&gt;
                monthName, birthDay&lt;br /&gt;
            )&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = &amp;quot;[[Category:Birth year needed]]&amp;quot;&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_%s_birthdays]]&amp;quot;, monthName, birthDay)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
        do&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            local childFrame = frame:newChild{&lt;br /&gt;
                args = {&lt;br /&gt;
                    [1] = &amp;quot;&amp;quot;,&lt;br /&gt;
                    [2] = birthMonth,&lt;br /&gt;
                    [3] = birthDay&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            local success, zodiacResult = pcall(BirthDateAndAge.main, childFrame)&lt;br /&gt;
            if success and type(zodiacResult) == &amp;quot;string&amp;quot; and zodiacResult ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                local zodiacPart = zodiacResult:match(&amp;quot;&amp;lt;br&amp;gt;Astrology:.*$&amp;quot;)&lt;br /&gt;
                if zodiacPart then&lt;br /&gt;
                    birthDateDisplay = birthDateDisplay .. zodiacPart&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if birthDateDisplay ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        if birthRef then&lt;br /&gt;
            birthDateDisplay = birthDateDisplay .. birthRef&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;Birth:\&#039;\&#039;\&#039;\n| style=&amp;quot;text-align:left;&amp;quot; | %s&#039;,&lt;br /&gt;
            state:getRowStyle(rowIndex),&lt;br /&gt;
            state.STYLES.LABEL,&lt;br /&gt;
            birthDateDisplay .. table.concat(categories, &#039;&#039;)&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatPlaceString(placeString)&lt;br /&gt;
    if not placeString or placeString == &#039;&#039; then&lt;br /&gt;
        return placeString&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return placeString:gsub(&#039;,%s*&#039;, &#039;, &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatPlaceOfBirth(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    &lt;br /&gt;
    local placeOfBirth = args.place_of_birth&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(placeOfBirth) and args.qid then&lt;br /&gt;
        local birthplaces = {}&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        if entity and entity.claims and entity.claims.P20 then&lt;br /&gt;
            for _, statement in pairs(entity.claims.P20) do&lt;br /&gt;
                if statement.mainsnak.datavalue and &lt;br /&gt;
                   statement.mainsnak.datavalue.value and &lt;br /&gt;
                   statement.mainsnak.datavalue.value.id then&lt;br /&gt;
                    local placeId = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                    local sitelink = mw.wikibase.getSitelink(placeId)&lt;br /&gt;
                    if sitelink and mw.ustring.match(sitelink, &#039;^&#039; .. mw.site.namespaces[14].name .. &#039;:&#039;) then&lt;br /&gt;
                        table.insert(categories, &#039;[[&#039; .. sitelink .. &#039;]]&#039;)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local newFrame = frame:newChild{&lt;br /&gt;
            args = {&lt;br /&gt;
                property = &#039;P20&#039;,&lt;br /&gt;
                entityId = args.qid,&lt;br /&gt;
                references = &#039;yes&#039;,&lt;br /&gt;
                separator = &#039;, &#039;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        local formatResult = Pornbasedata.formatProperty(newFrame)&lt;br /&gt;
        if not isEmpty(formatResult) then&lt;br /&gt;
            placeOfBirth = formatResult&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(placeOfBirth) then&lt;br /&gt;
        placeOfBirth = formatPlaceString(placeOfBirth)&lt;br /&gt;
        &lt;br /&gt;
        local rowStyle = state:getRowStyle(rowIndex)&lt;br /&gt;
        section[#section + 1] = string.format(&lt;br /&gt;
            &#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;Place of birth:\&#039;\&#039;\&#039;\n| style=&amp;quot;%s text-align:left;&amp;quot; | %s%s&#039;,&lt;br /&gt;
            rowStyle,&lt;br /&gt;
            state.STYLES.LABEL,&lt;br /&gt;
            rowStyle,&lt;br /&gt;
            placeOfBirth,&lt;br /&gt;
            table.concat(categories, &#039;&#039;)&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatBirthCountry(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local birthCountry = args.birth_country&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(birthCountry) and args.qid then&lt;br /&gt;
        birthCountry = PBD._property{&lt;br /&gt;
            [1] = &#039;P144&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(birthCountry) then&lt;br /&gt;
            birthCountry = birthCountry:match(&amp;quot;^[^,\n]+&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local displayValue = processCountryValue(birthCountry)&lt;br /&gt;
    &lt;br /&gt;
    if displayValue then&lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local expandedDisplayValue = frame:preprocess(displayValue)&lt;br /&gt;
&lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            &amp;quot;Country of birth:&amp;quot;,&lt;br /&gt;
            expandedDisplayValue,&lt;br /&gt;
            &amp;quot;birth_country&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatCitizenship(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local citizenshipValues = {}&lt;br /&gt;
    if not isEmpty(args.citizenship) then&lt;br /&gt;
        table.insert(citizenshipValues, args.citizenship)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for i = 2, 4 do&lt;br /&gt;
        local param = &amp;quot;citizenship&amp;quot; .. i&lt;br /&gt;
        if not isEmpty(args[param]) then&lt;br /&gt;
            table.insert(citizenshipValues, args[param])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #citizenshipValues == 0 and args.qid then&lt;br /&gt;
        local pbdValues = PBD._properties{&lt;br /&gt;
            [1] = &#039;P133&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            sep = &#039;\n&#039;,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(pbdValues) then&lt;br /&gt;
            for value in pbdValues:gmatch(&amp;quot;[^,\n]+&amp;quot;) do&lt;br /&gt;
                table.insert(citizenshipValues, mw.text.trim(value))&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local displayValues = {}&lt;br /&gt;
    for _, value in ipairs(citizenshipValues) do&lt;br /&gt;
        local processed = processCountryValue(value)&lt;br /&gt;
        if processed then&lt;br /&gt;
            table.insert(displayValues, processed)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #displayValues &amp;gt; 0 then&lt;br /&gt;
        local concatenated = table.concat(displayValues, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
        &lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local expandedDisplayValue = frame:preprocess(concatenated)&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            &amp;quot;Citizenship:&amp;quot;,&lt;br /&gt;
            expandedDisplayValue,&lt;br /&gt;
            &amp;quot;citizenship&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatDeathDate(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local deathDay = args.death_day ~= &amp;quot;&amp;quot; and args.death_day or nil&lt;br /&gt;
    local deathMonth = args.death_month ~= &amp;quot;&amp;quot; and args.death_month or nil&lt;br /&gt;
    local deathYear = args.death_year ~= &amp;quot;&amp;quot; and args.death_year or nil&lt;br /&gt;
    local deathRef = args.death_ref&lt;br /&gt;
    &lt;br /&gt;
    local birthYear = args.birth_year ~= &amp;quot;&amp;quot; and args.birth_year or nil&lt;br /&gt;
    local birthMonth = args.birth_month ~= &amp;quot;&amp;quot; and args.birth_month or nil&lt;br /&gt;
    local birthDay = args.birth_day ~= &amp;quot;&amp;quot; and args.birth_day or nil&lt;br /&gt;
&lt;br /&gt;
    if deathYear and tonumber(deathYear) and tonumber(deathYear) &amp;lt;= 0 then&lt;br /&gt;
        deathYear = nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local hasPBDDeathDate = false&lt;br /&gt;
    if not (deathDay or deathMonth or deathYear) and args.qid then&lt;br /&gt;
        local deathDate = PBD._property{&lt;br /&gt;
            [1] = &#039;P247&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if deathDate and deathDate ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            hasPBDDeathDate = true&lt;br /&gt;
            local frame = mw.getCurrentFrame()&lt;br /&gt;
            &lt;br /&gt;
            local pdbDeathDay = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P247&#039;,&lt;br /&gt;
                [2] = &#039;day&#039;&lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            local pdbDeathMonth = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P247&#039;,&lt;br /&gt;
                [2] = &#039;month&#039;&lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            local pdbDeathYear = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                [1] = &#039;P247&#039;,&lt;br /&gt;
                [2] = &#039;year&#039;&lt;br /&gt;
            }})&lt;br /&gt;
            &lt;br /&gt;
            if pdbDeathDay ~= &amp;quot;&amp;quot; then deathDay = tonumber(pdbDeathDay) end&lt;br /&gt;
            if pdbDeathMonth ~= &amp;quot;&amp;quot; then deathMonth = tonumber(pdbDeathMonth) end&lt;br /&gt;
            if pdbDeathYear ~= &amp;quot;&amp;quot; then deathYear = tonumber(pdbDeathYear) end&lt;br /&gt;
            &lt;br /&gt;
            if not birthYear or not birthMonth or not birthDay then&lt;br /&gt;
                local birthDate = PBD._property{&lt;br /&gt;
                    [1] = &#039;P9&#039;,&lt;br /&gt;
                    raw = true,&lt;br /&gt;
                    multilanguage = true,&lt;br /&gt;
                    [&#039;eid&#039;] = args.qid&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                if birthDate and birthDate ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    if not birthYear then&lt;br /&gt;
                        local pdbBirthYear = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                            [1] = &#039;P9&#039;,&lt;br /&gt;
                            [2] = &#039;year&#039;&lt;br /&gt;
                        }})&lt;br /&gt;
                        if pdbBirthYear ~= &amp;quot;&amp;quot; then birthYear = tonumber(pdbBirthYear) end&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    if not birthMonth then&lt;br /&gt;
                        local pdbBirthMonth = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                            [1] = &#039;P9&#039;,&lt;br /&gt;
                            [2] = &#039;month&#039;&lt;br /&gt;
                        }})&lt;br /&gt;
                        if pdbBirthMonth ~= &amp;quot;&amp;quot; then birthMonth = tonumber(pdbBirthMonth) end&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    if not birthDay then&lt;br /&gt;
                        local pdbBirthDay = GetBirthDate.property(frame:newChild{ args = {&lt;br /&gt;
                            [1] = &#039;P9&#039;,&lt;br /&gt;
                            [2] = &#039;day&#039;&lt;br /&gt;
                        }})&lt;br /&gt;
                        if pdbBirthDay ~= &amp;quot;&amp;quot; then birthDay = tonumber(pdbBirthDay) end&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;
    if not (deathDay or deathMonth or deathYear) and not hasPBDDeathDate then&lt;br /&gt;
        return {}, rowIndex&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local deathDateDisplay = &amp;quot;&amp;quot;&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
&lt;br /&gt;
    if isMainNamespace then&lt;br /&gt;
        categories[#categories + 1] = &amp;quot;[[Category:Dead people]]&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local ageAtDeath = calculateAge(birthYear, birthMonth, birthDay, deathYear, deathMonth, deathDay)&lt;br /&gt;
    &lt;br /&gt;
    if deathMonth and deathDay and deathYear then&lt;br /&gt;
        local ok, monthName = pcall(os.date, &#039;%B&#039;, os.time({year = 2000, month = tonumber(deathMonth), day = 1}))&lt;br /&gt;
        if ok and monthName then&lt;br /&gt;
            deathDateDisplay = string.format(&amp;quot;[[:Category:%s %s deaths|%s %s]] [[:Category:%s deaths|%s]]%s&amp;quot;,&lt;br /&gt;
                monthName, deathDay,&lt;br /&gt;
                deathDay, monthName,&lt;br /&gt;
                deathYear, deathYear,&lt;br /&gt;
                ageAtDeath&lt;br /&gt;
            )&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s deaths]]&amp;quot;, deathYear)&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_%s_deaths]]&amp;quot;, monthName, deathDay)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif deathMonth and deathYear then&lt;br /&gt;
        local ok, monthName = pcall(os.date, &#039;%B&#039;, os.time({year = 2000, month = tonumber(deathMonth), day = 1}))&lt;br /&gt;
        if ok and monthName then&lt;br /&gt;
            deathDateDisplay = string.format(&amp;quot;[[:Category:%s deaths|%s]] [[:Category:%s deaths|%s]]%s&amp;quot;,&lt;br /&gt;
                monthName,&lt;br /&gt;
                monthName,&lt;br /&gt;
                deathYear, deathYear,&lt;br /&gt;
                ageAtDeath&lt;br /&gt;
            )&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s deaths]]&amp;quot;, deathYear)&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s deaths]]&amp;quot;, monthName)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif deathYear then&lt;br /&gt;
        deathDateDisplay = string.format(&amp;quot;[[:Category:%s deaths|%s]]%s&amp;quot;,&lt;br /&gt;
            deathYear, deathYear,&lt;br /&gt;
            ageAtDeath&lt;br /&gt;
        )&lt;br /&gt;
        if isMainNamespace then&lt;br /&gt;
            categories[#categories + 1] = string.format(&amp;quot;[[Category:%s deaths]]&amp;quot;, deathYear)&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
    elseif deathMonth and deathDay then&lt;br /&gt;
        local ok, monthName = pcall(os.date, &#039;%B&#039;, os.time({year = 2000, month = tonumber(deathMonth), day = 1}))&lt;br /&gt;
        if ok and monthName then&lt;br /&gt;
            deathDateDisplay = string.format(&amp;quot;[[:Category:%s %s deaths|%s %s]]&amp;quot;,&lt;br /&gt;
                monthName, deathDay,&lt;br /&gt;
                monthName, deathDay&lt;br /&gt;
            )&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                categories[#categories + 1] = string.format(&amp;quot;[[Category:%s_%s_deaths]]&amp;quot;, monthName, deathDay)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if deathDateDisplay ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        if deathRef then&lt;br /&gt;
            deathDateDisplay = deathDateDisplay .. deathRef&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;Died:\&#039;\&#039;\&#039;\n| style=&amp;quot;text-align:left;&amp;quot; | %s&#039;,&lt;br /&gt;
            state:getRowStyle(rowIndex),&lt;br /&gt;
            state.STYLES.LABEL,&lt;br /&gt;
            deathDateDisplay .. table.concat(categories, &#039;&#039;)&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
&lt;br /&gt;
        local deathLocation = nil&lt;br /&gt;
        if args.death_location and args.death_location ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            deathLocation = args.death_location&lt;br /&gt;
        elseif args.qid then&lt;br /&gt;
            deathLocation = PBD._properties{[1] = &#039;P23&#039;, raw = true, multilanguage = true, [&#039;eid&#039;] = args.qid}&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(deathLocation) then&lt;br /&gt;
            section[#section + 1] = string.format(&#039;|-\n! style=&amp;quot;%s %s&amp;quot; | \&#039;\&#039;\&#039;Place of death:\&#039;\&#039;\&#039;\n| style=&amp;quot;text-align:left;&amp;quot; | %s&#039;,&lt;br /&gt;
                state:getRowStyle(rowIndex),&lt;br /&gt;
                state.STYLES.LABEL,&lt;br /&gt;
                deathLocation&lt;br /&gt;
            )&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatEthnicity(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local ethnicityValues = state:collectNumberedParams(args, &amp;quot;ethnicity&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #ethnicityValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._properties{&lt;br /&gt;
            [1] = &#039;P136&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            normal = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(ethnicityValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #ethnicityValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = {}&lt;br /&gt;
        &lt;br /&gt;
        for _, eth in ipairs(ethnicityValues) do&lt;br /&gt;
            local ethnicities = state:splitByComma(eth)&lt;br /&gt;
            for _, e in ipairs(ethnicities) do&lt;br /&gt;
                if #displayValue &amp;gt; 0 then&lt;br /&gt;
                    table.insert(displayValue, &amp;quot;, &amp;quot;)&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                e = mw.text.trim(e):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
                local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;, e, e)&lt;br /&gt;
                if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                    result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;, e)&lt;br /&gt;
                end&lt;br /&gt;
                table.insert(displayValue, result)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&amp;quot;Ethnicity:&amp;quot;,&lt;br /&gt;
            table.concat(displayValue, &amp;quot;&amp;quot;),&lt;br /&gt;
            &amp;quot;ethnicity&amp;quot;,&lt;br /&gt;
            rowIndex)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatNationality(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local nationalityValues = state:collectNumberedParams(args, &amp;quot;nationality&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    if #nationalityValues == 0 and args.qid then&lt;br /&gt;
        local pbdValue = PBD._properties{&lt;br /&gt;
            [1] = &#039;P131&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            normal = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        if not isEmpty(pbdValue) then&lt;br /&gt;
            table.insert(nationalityValues, pbdValue)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #nationalityValues &amp;gt; 0 then&lt;br /&gt;
        local displayValue = {}&lt;br /&gt;
        &lt;br /&gt;
        for _, nat in ipairs(nationalityValues) do&lt;br /&gt;
            local nationalities = state:splitByComma(nat)&lt;br /&gt;
            for _, n in ipairs(nationalities) do&lt;br /&gt;
                if #displayValue &amp;gt; 0 then&lt;br /&gt;
                    table.insert(displayValue, &amp;quot;, &amp;quot;)&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                n = mw.text.trim(n):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
                local result = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;, n, n)&lt;br /&gt;
                if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                    result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;, n)&lt;br /&gt;
                end&lt;br /&gt;
                table.insert(displayValue, result)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&amp;quot;Nationality:&amp;quot;,&lt;br /&gt;
            table.concat(displayValue, &amp;quot;&amp;quot;),&lt;br /&gt;
            &amp;quot;nationality&amp;quot;,&lt;br /&gt;
            rowIndex)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatLanguages(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local languageValues = {}&lt;br /&gt;
    for i = 1, 4 do&lt;br /&gt;
        local param = i == 1 and &amp;quot;language&amp;quot; or &amp;quot;language&amp;quot; .. i&lt;br /&gt;
        if not isEmpty(args[param]) then&lt;br /&gt;
            table.insert(languageValues, args[param])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #languageValues == 0 and args.qid then&lt;br /&gt;
        local pbdValues = PBD._properties{&lt;br /&gt;
            [1] = &#039;P634&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            sep = &#039;\n&#039;,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(pbdValues) then&lt;br /&gt;
            for value in pbdValues:gmatch(&amp;quot;[^,\n]+&amp;quot;) do&lt;br /&gt;
                table.insert(languageValues, mw.text.trim(value))&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #languageValues &amp;gt; 0 then&lt;br /&gt;
        local displayValues = {}&lt;br /&gt;
        for _, lang in ipairs(languageValues) do&lt;br /&gt;
            lang = mw.text.trim(lang):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
            local result = string.format(&amp;quot;[[:Category:%s language spoken|%s]]&amp;quot;, lang, lang)&lt;br /&gt;
            if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                result = result .. string.format(&amp;quot;[[Category:%s language spoken]]&amp;quot;, lang)&lt;br /&gt;
            end&lt;br /&gt;
            table.insert(displayValues, result)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local abbrTemplate = frame:expandTemplate{&lt;br /&gt;
            title = &#039;abbr&#039;,&lt;br /&gt;
            args = {&lt;br /&gt;
                &amp;quot;Languages&amp;quot;,&lt;br /&gt;
                &amp;quot;Language(s) that a person speaks, including the native language(s)&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            abbrTemplate .. &amp;quot;:&amp;quot;,&lt;br /&gt;
            table.concat(displayValues, &amp;quot;, &amp;quot;),&lt;br /&gt;
            &amp;quot;language&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatBrother(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local brotherValue = args.brother&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(brotherValue) and args.qid then&lt;br /&gt;
        brotherValue = PBD._properties{&lt;br /&gt;
            [1] = &#039;P358&#039;,&lt;br /&gt;
            linked = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(brotherValue) then&lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            &amp;quot;Brother of:&amp;quot;,&lt;br /&gt;
            brotherValue,&lt;br /&gt;
            &amp;quot;brother&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatSpouse(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(args.spouse) then&lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            &amp;quot;Spouse:&amp;quot;,&lt;br /&gt;
            args.spouse,&lt;br /&gt;
            &amp;quot;spouse&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatAlmaMater(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local almaMaterValue = args[&amp;quot;alma mater&amp;quot;] or args[&amp;quot;alma_mater&amp;quot;]&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(almaMaterValue) and args.qid then&lt;br /&gt;
        local formattedValues = {}&lt;br /&gt;
        local entity = mw.wikibase.getEntity(args.qid)&lt;br /&gt;
        &lt;br /&gt;
        if entity and entity.claims and entity.claims.P151 then&lt;br /&gt;
            local statements = {}&lt;br /&gt;
            for _, statement in pairs(entity.claims.P151) do&lt;br /&gt;
                table.insert(statements, statement)&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            table.sort(statements, function(a, b)&lt;br /&gt;
                local rankOrder = {preferred = 1, normal = 2, deprecated = 3}&lt;br /&gt;
                return (rankOrder[a.rank] or 99) &amp;lt; (rankOrder[b.rank] or 99)&lt;br /&gt;
            end)&lt;br /&gt;
            &lt;br /&gt;
            for _, statement in ipairs(statements) do&lt;br /&gt;
                if statement.mainsnak and &lt;br /&gt;
                   statement.mainsnak.snaktype == &amp;quot;value&amp;quot; and &lt;br /&gt;
                   statement.mainsnak.datavalue then&lt;br /&gt;
                    &lt;br /&gt;
                    local schoolValue&lt;br /&gt;
                    &lt;br /&gt;
                    if statement.mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                        local schoolId = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                        schoolValue = mw.wikibase.getLabel(schoolId) or schoolId&lt;br /&gt;
                    elseif statement.mainsnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                        schoolValue = statement.mainsnak.datavalue.value&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    if schoolValue and schoolValue ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                        local formattedValue = schoolValue&lt;br /&gt;
                        &lt;br /&gt;
                        if statement.qualifiers then&lt;br /&gt;
                            local qualifiers = {}&lt;br /&gt;
                            for qualifierId, qualifierSnaks in pairs(statement.qualifiers) do&lt;br /&gt;
                                for _, qualifierSnak in ipairs(qualifierSnaks) do&lt;br /&gt;
                                    if qualifierSnak.datavalue then&lt;br /&gt;
                                        local qualValue&lt;br /&gt;
                                        &lt;br /&gt;
                                        if qualifierSnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                            local qId = qualifierSnak.datavalue.value.id&lt;br /&gt;
                                            qualValue = mw.wikibase.getLabel(qId) or qId&lt;br /&gt;
                                        elseif qualifierSnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                            qualValue = qualifierSnak.datavalue.value&lt;br /&gt;
                                        end&lt;br /&gt;
                                        &lt;br /&gt;
                                        if qualValue and qualValue ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                                            table.insert(qualifiers, qualValue)&lt;br /&gt;
                                        end&lt;br /&gt;
                                    end&lt;br /&gt;
                                end&lt;br /&gt;
                            end&lt;br /&gt;
                            &lt;br /&gt;
                            if #qualifiers &amp;gt; 0 then&lt;br /&gt;
                                formattedValue = formattedValue .. &#039; &amp;lt;span style=&amp;quot;font-size:85%&amp;quot;&amp;gt;(&#039; .. table.concat(qualifiers, &amp;quot;, &amp;quot;) .. &#039;)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                        &lt;br /&gt;
                        if statement.references then&lt;br /&gt;
                            local refCount = 0&lt;br /&gt;
                            for _, ref in ipairs(statement.references) do&lt;br /&gt;
                                refCount = refCount + 1&lt;br /&gt;
                                local refId = &amp;quot;pbdref-&amp;quot; .. statement.id .. &amp;quot;-&amp;quot; .. refCount&lt;br /&gt;
                                &lt;br /&gt;
                                local refValues = {}&lt;br /&gt;
                                if ref.snaks then&lt;br /&gt;
                                    for refPropId, refSnaks in pairs(ref.snaks) do&lt;br /&gt;
                                        for _, refSnak in ipairs(refSnaks) do&lt;br /&gt;
                                            local refLabel = mw.wikibase.getLabel(refPropId) or refPropId&lt;br /&gt;
                                            local refValue&lt;br /&gt;
                                            &lt;br /&gt;
                                            if refSnak.datavalue then&lt;br /&gt;
                                                if refSnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
                                                    local valId = refSnak.datavalue.value.id&lt;br /&gt;
                                                    refValue = mw.wikibase.getLabel(valId) or valId&lt;br /&gt;
                                                elseif refSnak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
                                                    refValue = refSnak.datavalue.value&lt;br /&gt;
                                                elseif refSnak.datavalue.type == &amp;quot;time&amp;quot; then&lt;br /&gt;
                                                    refValue = refSnak.datavalue.value.time&lt;br /&gt;
                                                elseif refSnak.datavalue.type == &amp;quot;url&amp;quot; then&lt;br /&gt;
                                                    refValue = refSnak.datavalue.value&lt;br /&gt;
                                                end&lt;br /&gt;
                                                &lt;br /&gt;
                                                if refValue and refValue ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                                                    table.insert(refValues, refLabel .. &amp;quot;: &amp;quot; .. refValue)&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;
                                if #refValues &amp;gt; 0 then&lt;br /&gt;
                                    formattedValue = formattedValue .. &lt;br /&gt;
                                        mw.getCurrentFrame():extensionTag(&amp;quot;ref&amp;quot;, &lt;br /&gt;
                                            table.concat(refValues, &amp;quot;; &amp;quot;), &lt;br /&gt;
                                            {name = refId})&lt;br /&gt;
                                end&lt;br /&gt;
                            end&lt;br /&gt;
                        end&lt;br /&gt;
                        &lt;br /&gt;
                        table.insert(formattedValues, formattedValue)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            if #formattedValues &amp;gt; 0 then&lt;br /&gt;
                almaMaterValue = table.concat(formattedValues, &amp;quot;, &amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            local baseValue = PBD._properties{&lt;br /&gt;
                [1] = &#039;P151&#039;,&lt;br /&gt;
                multilanguage = true,&lt;br /&gt;
                linked = true,&lt;br /&gt;
                [&#039;eid&#039;] = args.qid&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if not isEmpty(baseValue) then&lt;br /&gt;
                almaMaterValue = baseValue&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(almaMaterValue) then&lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            &amp;quot;Alma mater:&amp;quot;,&lt;br /&gt;
            almaMaterValue,&lt;br /&gt;
            &amp;quot;alma_mater&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatOrientation(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    &lt;br /&gt;
    local orientationValue = args.orientation&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(orientationValue) and args.qid then&lt;br /&gt;
        orientationValue = PBD._property{&lt;br /&gt;
            [1] = &#039;P347&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(orientationValue) then&lt;br /&gt;
        orientationValue = tostring(orientationValue):lower()&lt;br /&gt;
        local orientationDisplay = nil&lt;br /&gt;
        &lt;br /&gt;
        for _, mapping in ipairs(CategoryMapping.MAPPINGS.orientation) do&lt;br /&gt;
            for _, alias in ipairs(mapping.aliases) do&lt;br /&gt;
                if orientationValue == alias:lower() then&lt;br /&gt;
                    local result = string.format(&#039;&amp;lt;span class=&amp;quot;%s&amp;quot;&amp;gt;[[:Category:%s|%s]]&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
                        mapping.class,&lt;br /&gt;
                        mapping.category,&lt;br /&gt;
                        mapping.display&lt;br /&gt;
                    )&lt;br /&gt;
                    &lt;br /&gt;
                    if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                        result = result .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                            mapping.category&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    orientationDisplay = result&lt;br /&gt;
                    break&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if orientationDisplay then break end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if not orientationDisplay then&lt;br /&gt;
            orientationValue = mw.text.trim(orientationValue):gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
            orientationDisplay = string.format(&amp;quot;[[:Category:%s|%s]]&amp;quot;, orientationValue, orientationValue)&lt;br /&gt;
            &lt;br /&gt;
            if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
                orientationDisplay = orientationDisplay .. string.format(&amp;quot;[[Category:%s]]&amp;quot;, orientationValue)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local frame = mw.getCurrentFrame()&lt;br /&gt;
        local abbrTemplate = frame:expandTemplate{&lt;br /&gt;
            title = &#039;abbr&#039;,&lt;br /&gt;
            args = {&lt;br /&gt;
                &amp;quot;Orientation&amp;quot;,&lt;br /&gt;
                &amp;quot;Sexual orientation&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&lt;br /&gt;
            abbrTemplate .. &amp;quot;:&amp;quot;,&lt;br /&gt;
            orientationDisplay,&lt;br /&gt;
            &amp;quot;orientation&amp;quot;,&lt;br /&gt;
            rowIndex&lt;br /&gt;
        )&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatCareer(state, args, rowIndex)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local isMainNamespace = mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
    &lt;br /&gt;
    local careerstart = args.careerstart&lt;br /&gt;
    if isEmpty(careerstart) and args.qid then&lt;br /&gt;
        careerstart = PBD._property{&lt;br /&gt;
            [1] = &#039;P153&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(careerstart) then&lt;br /&gt;
        local result = string.format(&amp;quot;[[:Category:%s career start|%s]]&amp;quot;, careerstart, careerstart)&lt;br /&gt;
        if isMainNamespace then&lt;br /&gt;
            result = result .. string.format(&amp;quot;[[Category:%s career start]]&amp;quot;, careerstart)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        section[#section + 1] = state:formatField(&amp;quot;Career Start:&amp;quot;,&lt;br /&gt;
            result,&lt;br /&gt;
            &amp;quot;careerstart&amp;quot;,&lt;br /&gt;
            rowIndex)&lt;br /&gt;
        rowIndex = rowIndex + 1&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local career = args.career&lt;br /&gt;
    if isEmpty(career) and args.qid then&lt;br /&gt;
        career = PBD._property{&lt;br /&gt;
            [1] = &#039;P154&#039;,&lt;br /&gt;
            raw = true,&lt;br /&gt;
            multilanguage = true,&lt;br /&gt;
            [&#039;eid&#039;] = args.qid&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local isActive = false&lt;br /&gt;
    if not isEmpty(career) then&lt;br /&gt;
        local statusMap = {&lt;br /&gt;
            [&amp;quot;A&amp;quot;] = {text = &amp;quot;Active&amp;quot;, category = &amp;quot;Currently Active Pornstars&amp;quot;, class = &amp;quot;careerstatusactive&amp;quot;},&lt;br /&gt;
            [&amp;quot;AS&amp;quot;] = {text = &amp;quot;Active (Straight Only)&amp;quot;, category = &amp;quot;Currently Active Pornstars (Straight Only)&amp;quot;, class = &amp;quot;careerstatusactive&amp;quot;},&lt;br /&gt;
            [&amp;quot;R&amp;quot;] = {text = &amp;quot;Retired&amp;quot;, category = &amp;quot;Retired Pornstars&amp;quot;, class = &amp;quot;careerstatusretired&amp;quot;},&lt;br /&gt;
            [&amp;quot;ACTIVE&amp;quot;] = {text = &amp;quot;Active&amp;quot;, category = &amp;quot;Currently Active Pornstars&amp;quot;, class = &amp;quot;careerstatusactive&amp;quot;},&lt;br /&gt;
            [&amp;quot;RETIRED&amp;quot;] = {text = &amp;quot;Retired&amp;quot;, category = &amp;quot;Retired Pornstars&amp;quot;, class = &amp;quot;careerstatusretired&amp;quot;}&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        career = career:upper()&lt;br /&gt;
        local status = statusMap[career]&lt;br /&gt;
        if status then&lt;br /&gt;
            isActive = (career == &amp;quot;A&amp;quot; or career == &amp;quot;AS&amp;quot; or career == &amp;quot;ACTIVE&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
            local displayValue = string.format(&#039;&amp;lt;span class=&amp;quot;%s&amp;quot;&amp;gt;[[:Category:%s|%s]]&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
                status.class,&lt;br /&gt;
                status.category,&lt;br /&gt;
                status.text&lt;br /&gt;
            )&lt;br /&gt;
            &lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                displayValue = displayValue .. string.format(&amp;quot;[[Category:%s]]&amp;quot;,&lt;br /&gt;
                    status.category&lt;br /&gt;
                )&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Career Status:&amp;quot;,&lt;br /&gt;
                displayValue,&lt;br /&gt;
                &amp;quot;career&amp;quot;,&lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isActive then&lt;br /&gt;
        local careerend = args.careerend&lt;br /&gt;
        if isEmpty(careerend) and args.qid then&lt;br /&gt;
            careerend = PBD._property{&lt;br /&gt;
                [1] = &#039;P155&#039;,&lt;br /&gt;
                raw = true,&lt;br /&gt;
                multilanguage = true,&lt;br /&gt;
                [&#039;eid&#039;] = args.qid&lt;br /&gt;
            }&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if not isEmpty(careerend) then&lt;br /&gt;
            local result = string.format(&amp;quot;[[:Category:%s career end|%s]]&amp;quot;, careerend, careerend)&lt;br /&gt;
            if isMainNamespace then&lt;br /&gt;
                result = result .. string.format(&amp;quot;[[Category:%s career end]]&amp;quot;, careerend)&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            section[#section + 1] = state:formatField(&amp;quot;Career End:&amp;quot;,&lt;br /&gt;
                result,&lt;br /&gt;
                &amp;quot;careerend&amp;quot;, &lt;br /&gt;
                rowIndex)&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return section, rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getPBDCategories(args)&lt;br /&gt;
    if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
        return {}&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local categories = {}&lt;br /&gt;
    &lt;br /&gt;
    local qid = args.qid&lt;br /&gt;
    if isEmpty(qid) then&lt;br /&gt;
        qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
    end&lt;br /&gt;
    if isEmpty(qid) then&lt;br /&gt;
        return {}&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local birthplaceProps = mw.wikibase.getBestStatements(qid, &amp;quot;P20&amp;quot;)&lt;br /&gt;
    if birthplaceProps and #birthplaceProps &amp;gt; 0 then&lt;br /&gt;
        for _, statement in pairs(birthplaceProps) do&lt;br /&gt;
            if statement.mainsnak and &lt;br /&gt;
               statement.mainsnak.datavalue and &lt;br /&gt;
               statement.mainsnak.datavalue.value and &lt;br /&gt;
               statement.mainsnak.datavalue.value.id then&lt;br /&gt;
                local placeId = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                local sitelink = mw.wikibase.getSitelink(placeId)&lt;br /&gt;
                if sitelink then&lt;br /&gt;
                    sitelink = sitelink:gsub(&amp;quot;^&amp;quot; .. mw.site.namespaces[14].name .. &amp;quot;:&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
                    table.insert(categories, sitelink)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local birthCountryProps = mw.wikibase.getBestStatements(qid, &amp;quot;P144&amp;quot;)&lt;br /&gt;
    if birthCountryProps and #birthCountryProps &amp;gt; 0 then&lt;br /&gt;
        for _, statement in pairs(birthCountryProps) do&lt;br /&gt;
            if statement.mainsnak and &lt;br /&gt;
               statement.mainsnak.datavalue and &lt;br /&gt;
               statement.mainsnak.datavalue.value and &lt;br /&gt;
               statement.mainsnak.datavalue.value.id then&lt;br /&gt;
                local countryId = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                local sitelink = mw.wikibase.getSitelink(countryId)&lt;br /&gt;
                if sitelink then&lt;br /&gt;
                    sitelink = sitelink:gsub(&amp;quot;^&amp;quot; .. mw.site.namespaces[14].name .. &amp;quot;:&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
                    table.insert(categories, sitelink)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local occupationProps = mw.wikibase.getBestStatements(qid, &amp;quot;P124&amp;quot;)&lt;br /&gt;
    if occupationProps and #occupationProps &amp;gt; 0 then&lt;br /&gt;
        for _, statement in pairs(occupationProps) do&lt;br /&gt;
            if statement.mainsnak and &lt;br /&gt;
               statement.mainsnak.datavalue and &lt;br /&gt;
               statement.mainsnak.datavalue.value and &lt;br /&gt;
               statement.mainsnak.datavalue.value.id then&lt;br /&gt;
                local occupationId = statement.mainsnak.datavalue.value.id&lt;br /&gt;
                local sitelink = mw.wikibase.getSitelink(occupationId)&lt;br /&gt;
                if sitelink then&lt;br /&gt;
                    sitelink = sitelink:gsub(&amp;quot;^&amp;quot; .. mw.site.namespaces[14].name .. &amp;quot;:&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
                    table.insert(categories, sitelink)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatPersonalSection(state, args, title)&lt;br /&gt;
    local section = {}&lt;br /&gt;
    local rowIndex = 1&lt;br /&gt;
&lt;br /&gt;
    if not args.qid or args.qid == &amp;quot;&amp;quot; then&lt;br /&gt;
        args.qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    section[#section + 1] = string.format(&#039;{| %s&#039;, state.STYLES.INFOBOX)&lt;br /&gt;
&lt;br /&gt;
    local name = args.name&lt;br /&gt;
    if isEmpty(name) then&lt;br /&gt;
        name = getPBDValue(&#039;P7&#039;, args)&lt;br /&gt;
        if isEmpty(name) then&lt;br /&gt;
            name = title&lt;br /&gt;
        end &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;%s\&#039;\&#039;\&#039;&#039;, state.STYLES.HEADER, name)&lt;br /&gt;
&lt;br /&gt;
    local imageHtml = getImage(args)&lt;br /&gt;
    local imageCaption = not isEmpty(args.imagecaption) and &lt;br /&gt;
        string.format(&#039;&amp;lt;br&amp;gt;\&#039;\&#039;%s\&#039;\&#039;&#039;, args.imagecaption) or &#039;&#039;&lt;br /&gt;
    section[#section + 1] = string.format(&#039;|-\n| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | %s%s&#039;, &lt;br /&gt;
        imageHtml, imageCaption)&lt;br /&gt;
&lt;br /&gt;
    section[#section + 1] = string.format(&#039;|-\n! colspan=&amp;quot;2&amp;quot; %s | \&#039;\&#039;\&#039;Personal\&#039;\&#039;\&#039;&#039;, state.STYLES.SECTION_HEADER)&lt;br /&gt;
&lt;br /&gt;
    local realName = args.real_name&lt;br /&gt;
    local marriedName = args.married_name&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(realName) then&lt;br /&gt;
        realName = getPBDValue(&#039;P5&#039;, args)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if isEmpty(marriedName) then&lt;br /&gt;
        marriedName = getPBDValue(&#039;P648&#039;, args)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if not isEmpty(marriedName) then&lt;br /&gt;
        if not isEmpty(realName) then&lt;br /&gt;
            local fieldLine = state:formatField(&#039;Real name:&#039;, &lt;br /&gt;
                marriedName .. &#039;&amp;lt;br&amp;gt;\&#039;\&#039;\&#039;né\&#039;\&#039;\&#039; &#039; .. realName, &lt;br /&gt;
                &#039;real_name&#039;, &lt;br /&gt;
                rowIndex)&lt;br /&gt;
            if fieldLine ~= &#039;&#039; then&lt;br /&gt;
                section[#section + 1] = fieldLine&lt;br /&gt;
                rowIndex = rowIndex + 1&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            local fieldLine = state:formatField(&#039;Real name:&#039;, &lt;br /&gt;
                marriedName, &lt;br /&gt;
                &#039;married_name&#039;, &lt;br /&gt;
                rowIndex)&lt;br /&gt;
            if fieldLine ~= &#039;&#039; then&lt;br /&gt;
                section[#section + 1] = fieldLine&lt;br /&gt;
                rowIndex = rowIndex + 1&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    elseif not isEmpty(realName) then&lt;br /&gt;
        local fieldLine = state:formatField(&#039;Birth name:&#039;, &lt;br /&gt;
            realName, &lt;br /&gt;
            &#039;real_name&#039;, &lt;br /&gt;
            rowIndex)&lt;br /&gt;
        if fieldLine ~= &#039;&#039; then&lt;br /&gt;
            section[#section + 1] = fieldLine&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local personalFields = {&lt;br /&gt;
        {label = &#039;Legal name:&#039;, prop = &#039;P753&#039;, param = &#039;legal_name&#039;},&lt;br /&gt;
        {label = &#039;Native name:&#039;, prop = &#039;P13&#039;, param = &#039;native_name&#039;},&lt;br /&gt;
        {label = &#039;Name in kana:&#039;, prop = &#039;P480&#039;, param = &#039;name_in_kana&#039;},&lt;br /&gt;
        {label = &#039;Aliases:&#039;, prop = &#039;P140&#039;, param = &#039;alias&#039;},&lt;br /&gt;
        {label = &#039;Nicknames:&#039;, prop = &#039;P363&#039;, param = &#039;nicknames&#039;}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, field in ipairs(personalFields) do&lt;br /&gt;
        local value&lt;br /&gt;
        &lt;br /&gt;
        if field.param == &#039;alias&#039; or field.param == &#039;nicknames&#039; then&lt;br /&gt;
            value = args[field.param]&lt;br /&gt;
            if isEmpty(value) and args.qid then&lt;br /&gt;
                value = PBD._properties{&lt;br /&gt;
                    [1] = field.prop,&lt;br /&gt;
                    raw = true,&lt;br /&gt;
                    multilanguage = true,&lt;br /&gt;
                    [&#039;eid&#039;] = args.qid&lt;br /&gt;
                }&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            value = getPBDValue(field.prop, args, args[field.param])&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local fieldLine = state:formatField(field.label, value, field.param, rowIndex)&lt;br /&gt;
        if fieldLine ~= &#039;&#039; then&lt;br /&gt;
            section[#section + 1] = fieldLine&lt;br /&gt;
            rowIndex = rowIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local birthSection, newRowIndex = p.formatBirthDate(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(birthSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local placeOfBirthSection, newRowIndex = p.formatPlaceOfBirth(state, args, rowIndex) &lt;br /&gt;
    for _, line in ipairs(placeOfBirthSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local birthCountrySection, newRowIndex = p.formatBirthCountry(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(birthCountrySection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local citizenshipSection, newRowIndex = p.formatCitizenship(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(citizenshipSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local deathSection, newRowIndex = p.formatDeathDate(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(deathSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local ethnicitySection, newRowIndex = p.formatEthnicity(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(ethnicitySection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local nationalitySection, newRowIndex = p.formatNationality(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(nationalitySection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local languagesSection, newRowIndex = p.formatLanguages(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(languagesSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local brotherSection, newRowIndex = p.formatBrother(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(brotherSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local spouseSection, newRowIndex = p.formatSpouse(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(spouseSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
    local almaMaterSection, newRowIndex = p.formatAlmaMater(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(almaMaterSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
    &lt;br /&gt;
	local orientationSection, newRowIndex = p.formatOrientation(state, args, rowIndex)&lt;br /&gt;
	for _, line in ipairs(orientationSection) do&lt;br /&gt;
	    section[#section + 1] = line&lt;br /&gt;
	end&lt;br /&gt;
	rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    local careerSection, newRowIndex = p.formatCareer(state, args, rowIndex)&lt;br /&gt;
    for _, line in ipairs(careerSection) do&lt;br /&gt;
        section[#section + 1] = line&lt;br /&gt;
    end&lt;br /&gt;
    rowIndex = newRowIndex&lt;br /&gt;
&lt;br /&gt;
    return table.concat(section, &#039;\n&#039;), rowIndex&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2965</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2965"/>
		<updated>2025-03-19T00:04:25Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * MediaWiki upgrade note:&lt;br /&gt;
 * On the server side, the following style files are modified for PBC:&lt;br /&gt;
 *&lt;br /&gt;
 * resources/src/mediawiki.skinning/elements.css&lt;br /&gt;
 * skins/Vector/variables.less&lt;br /&gt;
 *&lt;br /&gt;
 * Changed values are tagged with PBC comments.&lt;br /&gt;
 *&lt;br /&gt;
 * The following images are modified:&lt;br /&gt;
 *&lt;br /&gt;
 * skins/Vector/images/tab-break.png&lt;br /&gt;
 * skins/Vector/images/tab-normal-fade.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.svg&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.png&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.png&lt;br /&gt;
 * skins/Vector/images/watch-icon.svg&lt;br /&gt;
 * skins/Vector/images/watch-icon.png&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* Default styling for HTML elements */&lt;br /&gt;
#siteSub { display:block; font-weight:normal; font-size:small;}&lt;br /&gt;
dfn {&lt;br /&gt;
    font-style: inherit;  /* Reset default styling for &amp;lt;dfn&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wbr { display: inline-block; }&lt;br /&gt;
&lt;br /&gt;
#bodyContent p {&lt;br /&gt;
    font-size: 0.975em;&lt;br /&gt;
    margin-top: 0px; /* Отступ сверху */&lt;br /&gt;
    margin-bottom: 1px; /* Отступ снизу */&lt;br /&gt;
    line-height: 1.5em; /*Интерлиньяж (расстояние между строк)*/&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor link colors */&lt;br /&gt;
.wikiEditor-ui-tabs div a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a:visited {&lt;br /&gt;
  color: #d46007;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
q {&lt;br /&gt;
    quotes: &#039;&amp;quot;&#039; &#039;&amp;quot;&#039; &amp;quot;&#039;&amp;quot; &amp;quot;&#039;&amp;quot;;  /* Straight quote marks for &amp;lt;q&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
blockquote {&lt;br /&gt;
	overflow: hidden;  /* Avoid collision of background with floating elements */&lt;br /&gt;
}&lt;br /&gt;
strong.selflink {&lt;br /&gt;
    font-weight: 700;  /* Prevent the &#039;double bold&#039; bug in Firefox when using DirectWrite */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li {&lt;br /&gt;
     list-style-position: inside;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gay {&lt;br /&gt;
    color: #7D4BBE; /* Фиолетовый цвет для обозначения гомосексуальной ориентации */&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.bisexual {&lt;br /&gt;
    color: #DF4661; /* Розовый/красный для обозначения бисексуальной ориентации */&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.straight {&lt;br /&gt;
    color: #3D86C6; /* Синий для обозначения гетеросексуальной ориентации */&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стили для переопределения конфликтующих правил */&lt;br /&gt;
.pbccdn .pbccdn-row {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap !important;&lt;br /&gt;
  margin-right: -0.75rem !important;&lt;br /&gt;
  margin-left: -0.75rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-3 {&lt;br /&gt;
  flex: 0 0 25% !important;&lt;br /&gt;
  max-width: 25% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-6 {&lt;br /&gt;
  flex: 0 0 50% !important;&lt;br /&gt;
  max-width: 50% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-md-12 {&lt;br /&gt;
  flex: 0 0 100% !important;&lt;br /&gt;
  max-width: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Сброс некоторых стилей MediaWiki, которые могут конфликтовать */&lt;br /&gt;
.pbccdn .pbccdn-card {&lt;br /&gt;
  width: auto !important;&lt;br /&gt;
  float: none !important;&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-direction: column !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Принудительное применение отступов */&lt;br /&gt;
.pbccdn .pbccdn-mb-4 {&lt;br /&gt;
  margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стиль для отладки - добавляет рамки вокруг колонок */&lt;br /&gt;
.debug .pbccdn-col-lg-3,&lt;br /&gt;
.debug .pbccdn-col-lg-6,&lt;br /&gt;
.debug .pbccdn-col-md-12 {&lt;br /&gt;
  border: 1px dashed red !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Consistent size for &amp;lt;sub&amp;gt; and &amp;lt;sup&amp;gt; */&lt;br /&gt;
.mw-body sub,&lt;br /&gt;
.mw-body sup,&lt;br /&gt;
span.careerstatusactive a { color: green; }&lt;br /&gt;
span.careerstatusretired a { color: red; }&lt;br /&gt;
&lt;br /&gt;
span.reference /* for Parsoid */ {&lt;br /&gt;
    font-size: 80%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mwe-popups {&lt;br /&gt;
box-shadow: 0 45px 70px -20px rgba(0,0,0,0.3), 0px 0px 1px rgba(0,0,0,0.5);&lt;br /&gt;
border:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main page fixes */&lt;br /&gt;
#interwiki-completelist {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #ca-delete {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #mp-topbanner {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Edit window toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
    height: 22px;&lt;br /&gt;
    margin-bottom: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor CSS for #wpTextbox1 is not loaded on .css/.js pages, so load here. [[phab:T97299]] */&lt;br /&gt;
.wikiEditor-ui-text #wpTextbox1 {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    resize: vertical;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide charinsert base for those not using the gadget */&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* People &amp;amp; gadget */&lt;br /&gt;
&lt;br /&gt;
.people ul, .gadget ul {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  font-size: 0.95em;&lt;br /&gt;
  line-height: 1.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.people .squeezed ul, .gadget .squeezed ul {&lt;br /&gt;
  line-height: 1.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#content .people ul, #content .gadget ul {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgallerybox {&lt;br /&gt;
                text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 244px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
.manifestmenlist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.manifestmenlistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.photographygallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mmagallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.photographygalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 262px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.mmagalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.sitemodellistgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.bodybuildergalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 268px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.modelboxdsblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 267px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
/* Highlight data points in the info action if specified in the URL */&lt;br /&gt;
body.action-info :target {&lt;br /&gt;
    background: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make the list of references smaller */&lt;br /&gt;
ol.references,&lt;br /&gt;
div.reflist,&lt;br /&gt;
div.refbegin {&lt;br /&gt;
    font-size: 90%;            /* Default font-size */&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.refbegin-100 {&lt;br /&gt;
    font-size: 100%;           /* Option for normal fontsize in {{refbegin}} */&lt;br /&gt;
}&lt;br /&gt;
div.reflist ol.references {&lt;br /&gt;
    font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
    list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight clicked reference in blue to help navigation */&lt;br /&gt;
span.citation:target {&lt;br /&gt;
    background-color: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure refs in table headers and the like aren&#039;t bold or italic */&lt;br /&gt;
sup.reference {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow hidden ref errors to be shown by user CSS */&lt;br /&gt;
span.brokenref {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */&lt;br /&gt;
.citation {&lt;br /&gt;
    word-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For linked citation numbers and document IDs, where&lt;br /&gt;
   the number need not be shown on a screen or a handheld,&lt;br /&gt;
   but should be included in the printed version */&lt;br /&gt;
@media screen, handheld {&lt;br /&gt;
    .citation .printonly {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
div.columns {&lt;br /&gt;
    margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
div.columns dl,&lt;br /&gt;
div.columns ol,&lt;br /&gt;
div.columns ul {&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid elements from breaking between columns */&lt;br /&gt;
.nocolbreak,&lt;br /&gt;
div.columns li,&lt;br /&gt;
div.columns dd dd {&lt;br /&gt;
    -webkit-column-break-inside: avoid;&lt;br /&gt;
    page-break-inside: avoid;&lt;br /&gt;
    break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */&lt;br /&gt;
.flowlist ul {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist ol {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 3.2em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist dl {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for horizontal lists (separator following item).&lt;br /&gt;
   IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].&lt;br /&gt;
   @source mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
   @revision 6 (2014-05-09)&lt;br /&gt;
   @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling the parameter fields in [[Template:Information]] and related templates&lt;br /&gt;
   also here (besides on [[MediaWiki:Filepage.css]]) to ensure proper preview&lt;br /&gt;
   on other pages than those in the file namespace */&lt;br /&gt;
.fileinfo-paramfield {&lt;br /&gt;
 background: #ccf;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 text-align: right;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 padding-right: 0.4em;&lt;br /&gt;
 width: 15%;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
    content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
    content: &amp;quot; · &amp;quot;;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd.hlist-last-child:after,&lt;br /&gt;
.hlist dt.hlist-last-child:after,&lt;br /&gt;
.hlist li.hlist-last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.filmographyblock { &lt;br /&gt;
    width: 60%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.filmographydivminiblock { &lt;br /&gt;
    width: 100%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,&lt;br /&gt;
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,&lt;br /&gt;
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
    counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
    counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
    content: &amp;quot; &amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Unbulleted lists */&lt;br /&gt;
.plainlist ol,&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
    line-height: inherit;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.plainlist ol li,&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default style for navigation boxes */&lt;br /&gt;
.navbox {                     /* Navbox container style */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: auto;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
    padding: 0.25em 1em;      /* Title, group and above/below styles */&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
th.navbox-group {             /* Group style */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    background: #fdfdfd;      /* Background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-list {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    border-color: #fdfdfd;    /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox th,&lt;br /&gt;
.navbox-title {&lt;br /&gt;
    background: #ccccff;      /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
th.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
    background: #ddddff;      /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
    background: #e6e6ff;      /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-even {&lt;br /&gt;
    background: #f7f7f7;      /* Even row striping */&lt;br /&gt;
}&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
    background: transparent;  /* Odd row striping */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */&lt;br /&gt;
    margin-top: -1px;          /* (doesn&#039;t work for IE6, but that&#039;s okay)       */&lt;br /&gt;
}&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
    padding: 0.125em 0;       /* Adjust hlist padding in navboxes */&lt;br /&gt;
}&lt;br /&gt;
ol + table.navbox,&lt;br /&gt;
ul + table.navbox {&lt;br /&gt;
    margin-top: 1em;        /* Prevent lists from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.episode {&lt;br /&gt;
  /*margin-left: 4px;*/&lt;br /&gt;
  line-height: 15.5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.episode th, .episode td {&lt;br /&gt;
  padding-top: 3px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default styling for Navbar template */&lt;br /&gt;
.navbar {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.navbar ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
.mw-body-content .navbar ul {&lt;br /&gt;
    line-height: 1em;&lt;br /&gt;
}&lt;br /&gt;
.navbar li {&lt;br /&gt;
    word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
.navbar.mini li span {&lt;br /&gt;
  font-variant: small-caps;&lt;br /&gt;
}&lt;br /&gt;
/* Navbar styling when nested in infobox and navbox */&lt;br /&gt;
.infobox .navbar {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &#039;show&#039;/&#039;hide&#039; buttons created dynamically by the CollapsibleTables javascript&lt;br /&gt;
   in [[MediaWiki:Common.js]] are styled here so they can be customised. */&lt;br /&gt;
.collapseButton {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
/* In navboxes, the show/hide button balances the v·d·e links&lt;br /&gt;
   from [[Template:Navbar]], so they need to be the same width. */&lt;br /&gt;
.navbox .collapseButton {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for JQuery makeCollapsible, matching that of collapseButton */&lt;br /&gt;
.mw-collapsible-toggle {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox .mw-collapsible-toggle {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
/* Infobox template style */&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 900px;&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        display:flex;&lt;br /&gt;
        justify-content:center;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.countrydata td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 260px;&lt;br /&gt;
	float: left;&lt;br /&gt;
        clear: left;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infoboxnew td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oddrowsgray tr:nth-child(odd) {&lt;br /&gt;
	background-color: #ededed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription1,&lt;br /&gt;
.infoboxdescription2,&lt;br /&gt;
.infoboxdescription3,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    padding: 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname1,&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdescription1 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#657D91), color-stop(100%,#596F80)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname2,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdescription2 {&lt;br /&gt;
    background: #d2801e; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#d2801e), color-stop(100%,#653f03)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname3,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription3 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#292821), color-stop(100%,#292821)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #FFFFFF; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamebiobox,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdescriptionbiobox {&lt;br /&gt;
    background: #824d1f; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #657D91 0%, #596F80 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#657D91), color-stop(100%,#292821)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #657D91 0%,#596F80 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #657D91 0%,#596F80 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&amp;quot;#657D91&amp;quot;, endColorstr=&amp;quot;#596F80&amp;quot;,GradientType=0 ); /* IE6-9 */&lt;br /&gt;
    color: #F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamenv,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    background: #55B784; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#55B784), color-stop(100%,#001E0E)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    color: ##F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamefilmtv,&lt;br /&gt;
.infoboxdetailsfilmtv {&lt;br /&gt;
    background: #D1E6F4; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#D1E6F4), color-stop(100%,#17405C)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Collapsing sections in infoboxes */&lt;br /&gt;
.section-collapse {&lt;br /&gt;
    border-color: #ffffff;&lt;br /&gt;
    border-style: solid;&lt;br /&gt;
    border-width: 2px 2px 0 0;&lt;br /&gt;
    content: &amp;quot;&amp;quot;;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    height: 7px;&lt;br /&gt;
    margin-right: 5px;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    right: 0;&lt;br /&gt;
    top: 5px;&lt;br /&gt;
    transform: rotate(-45deg);&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
    width: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.section-collapsed {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collapsed-icon {&lt;br /&gt;
   margin-top: -2px;&lt;br /&gt;
   transform: rotate(135deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxscene {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxsceneinline {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxepisodelist {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetition {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox .image_wrapper {&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:10px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after,&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after { bottom:-4px; }&lt;br /&gt;
&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after { bottom:-3px; }&lt;br /&gt;
&lt;br /&gt;
/** NAVI BARS **/&lt;br /&gt;
div.navi {&lt;br /&gt;
  position:relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box {&lt;br /&gt;
  filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffffff,EndColorStr=#ffeeeeee);&lt;br /&gt;
  background-image:linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-o-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-moz-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-ms-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #eee));&lt;br /&gt;
  border:1px solid #AAA;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  min-height:60px;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  margin:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi      .box { width:100%; }&lt;br /&gt;
div.navi.thin .box { width:100%; }&lt;br /&gt;
div.navi.wide .box { width:100%; }&lt;br /&gt;
div.navi.nat  .box { width:40em; }&lt;br /&gt;
div.navi.full .box { width:unset; }&lt;br /&gt;
&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
&lt;br /&gt;
div.navi .heading {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a:hover {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .clear {&lt;br /&gt;
  height:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .wrapper {&lt;br /&gt;
  padding: 0px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dl,&lt;br /&gt;
div.navi .wrapper.hlist &amp;gt; ul {&lt;br /&gt;
  margin:0.667em 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  clear:left;&lt;br /&gt;
  border-right:2px solid #999;&lt;br /&gt;
  margin:0 -2px 0 0;&lt;br /&gt;
  padding:2px 8px 2px 0px;&lt;br /&gt;
  width:25%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dd {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-left:2px solid #888;&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:2px 0px 2px 8px;&lt;br /&gt;
  width:67%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt, div.navi dd {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  margin:0.667em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table th {&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  border-right:2px solid #888;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table td {&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav .wrapper p {&lt;br /&gt;
  margin-top:0.667em;&lt;br /&gt;
  margin-bottom:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .selflink {&lt;br /&gt;
  font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi.nat  .box { width:80em; }&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
/* natcat */&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
  background-color:#FC6 !important;&lt;br /&gt;
  border-color:#CCA352 !important;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr.natcat &amp;gt; th {&lt;br /&gt;
  background-color:#FFE6B3;&lt;br /&gt;
  border-color:#CCB88F;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.natcat:nth-child(odd) {&lt;br /&gt;
  background-color:#FFF8E8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove after shadow for tables that have been centered, otherwise the shadow spans the entire page */&lt;br /&gt;
.table[class*=center]::after,&lt;br /&gt;
.table.noshadowafter::after { background-image:none; }&lt;br /&gt;
&lt;br /&gt;
div.infobox table,&lt;br /&gt;
div.nav table { background-color:transparent; }&lt;br /&gt;
&lt;br /&gt;
.careerlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	clear: left;&lt;br /&gt;
        margin: 0em 0.5em 0em 0em;&lt;br /&gt;
	width: 250px;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
        text-align: left;&lt;br /&gt;
        line-height: 1.5em;&lt;br /&gt;
	background: #f9f9f9;&lt;br /&gt;
        color: black;&lt;br /&gt;
	float: left;&lt;br /&gt;
        display:inline;&lt;br /&gt;
        border: 1px solid #aaa;&lt;br /&gt;
        border-spacing: 3px;&lt;br /&gt;
	padding: 0.2em;&lt;br /&gt;
	overflow: auto;&lt;br /&gt;
	z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-imagearea {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
.infobox-imagearea &amp;gt; div:not(:first-child) {&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-rows {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
#content .infobox-rows p {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows audio {&lt;br /&gt;
	width: 184px;&lt;br /&gt;
}&lt;br /&gt;
/* Merge adjacent dls in the infobox (since they&#039;re usually supposed to be one, but the wiki screws up sometimes) */&lt;br /&gt;
.infobox-rows dl + dl {&lt;br /&gt;
	margin-top: -0.4em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows dl:last-child {&lt;br /&gt;
	margin-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-footer {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.biobox-header {&lt;br /&gt;
	background:#ff7f00;&lt;br /&gt;
        color: #ffffff;&lt;br /&gt;
        text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Alternating table rows, primarily used with [[Template:Biobox row]] */&lt;br /&gt;
.alternaterows tr:nth-child(even),&lt;br /&gt;
.infobox-rows tr:nth-child(even) {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The blue header used throughout the wiki */&lt;br /&gt;
.mcwiki-header {&lt;br /&gt;
	background: #ff7f00;&lt;br /&gt;
        color: white;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.czechhunterlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodylist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodysceneinline {&lt;br /&gt;
	display: block;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gaywargameslist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hunkchannellist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pornographiccareerlistgay {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerliststraight {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerlistbisexual {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetitionbb {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infobox caption {&lt;br /&gt;
    font-size: 125%;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.infobox td,&lt;br /&gt;
.infobox th {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered td,&lt;br /&gt;
.infobox.bordered th {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered .borderless td,&lt;br /&gt;
.infobox.bordered .borderless th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.sisterproject {&lt;br /&gt;
    width: 20em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.infobox.standard-talk.bordered td,&lt;br /&gt;
.infobox.standard-talk.bordered th {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* styles for bordered infobox with merged rows */&lt;br /&gt;
.infobox.bordered .mergedtoprow td,&lt;br /&gt;
.infobox.bordered .mergedtoprow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.bordered .mergedrow td,&lt;br /&gt;
.infobox.bordered .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styles for geography infoboxes, eg countries,&lt;br /&gt;
   country subdivisions, cities, etc.            */&lt;br /&gt;
.infobox.geography {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    line-height: 1.2em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography  td,&lt;br /&gt;
.infobox.geography  th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
.infobox.geography .mergedtoprow td,&lt;br /&gt;
.infobox.geography .mergedtoprow th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedrow td,&lt;br /&gt;
.infobox.geography .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedbottomrow td,&lt;br /&gt;
.infobox.geography .mergedbottomrow th {&lt;br /&gt;
    border-top: 0;&lt;br /&gt;
    border-bottom: 1px solid #aaa;&lt;br /&gt;
    padding: 0 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .maptable td,&lt;br /&gt;
.infobox.geography .maptable th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Normal font styling for table row headers with scope=&amp;quot;row&amp;quot; tag */&lt;br /&gt;
.wikitable.plainrowheaders th[scope=row] {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Lists in data cells are always left-aligned */&lt;br /&gt;
.wikitable td ul,&lt;br /&gt;
.wikitable td ol,&lt;br /&gt;
.wikitable td dl {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
/* ...unless they also use the hlist class */&lt;br /&gt;
.toc.hlist ul,&lt;br /&gt;
#toc.hlist ul,&lt;br /&gt;
.wikitable.hlist td ul,&lt;br /&gt;
.wikitable.hlist td ol,&lt;br /&gt;
.wikitable.hlist td dl {&lt;br /&gt;
    text-align: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon for all PDF files&lt;br /&gt;
   in browsers that support these CSS selectors, like Mozilla and Opera */&lt;br /&gt;
div#content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF#&amp;quot;].external {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon anywhere the PDFlink class&lt;br /&gt;
   is used (notably Template:PDFlink). This works in IE, unlike the above. */&lt;br /&gt;
div#content span.PDFlink a,&lt;br /&gt;
div#mw_content span.PDFlink a {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */&lt;br /&gt;
div.columns-2 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
    min-width: 300px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-3 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 33.3%;&lt;br /&gt;
    min-width: 200px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-4 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 25%;&lt;br /&gt;
    min-width: 150px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-5 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 20%;&lt;br /&gt;
    min-width: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Messagebox templates */&lt;br /&gt;
.messagebox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    width: 80%;&lt;br /&gt;
    margin: 0 auto 1em auto;&lt;br /&gt;
    padding: .2em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.merge {&lt;br /&gt;
    border: 1px solid #c0b8cc;&lt;br /&gt;
    background-color: #f0e5ff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.cleanup {&lt;br /&gt;
    border: 1px solid #9f9fff;&lt;br /&gt;
    background-color: #efefff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    margin: 4px auto;&lt;br /&gt;
}&lt;br /&gt;
/* For old WikiProject banners inside banner shells. */&lt;br /&gt;
.mbox-inside .standard-talk,&lt;br /&gt;
.messagebox.nested-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: 2px 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small-talk {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
    background: #F8EABA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */&lt;br /&gt;
th.mbox-text, td.mbox-text {   /* The message body cell(s) */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 0.25em 0.9em;     /* 0.9em left/right */&lt;br /&gt;
    width: 100%;               /* Make all mboxes the same width regardless of text length */&lt;br /&gt;
}&lt;br /&gt;
td.mbox-image {                /* The left image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-imageright {           /* The right image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-empty-cell {           /* An empty narrow cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Article message box styles */&lt;br /&gt;
table.ambox {&lt;br /&gt;
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
table.ambox + table.ambox {      /* Single border between stacked boxes. */&lt;br /&gt;
    margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.ambox th.mbox-text,&lt;br /&gt;
.ambox td.mbox-text {            /* The message body cell(s) */&lt;br /&gt;
    padding: 0.25em 0.5em;       /* 0.5em left/right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-image {           /* The left image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-imageright {      /* The right image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ambox-notice {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-speedy {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;                   /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-delete {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-content {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-style {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-move {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-protection {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Image message box styles */&lt;br /&gt;
table.imbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */&lt;br /&gt;
    margin: 0 -0.5em;       /* 0.9 - 0.5 = 0.4em left/right.        */&lt;br /&gt;
    display: block;         /* Fix for webkit to force 100% width.  */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .imbox {       /* For imboxes inside other templates.  */&lt;br /&gt;
    margin: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.imbox-notice {&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-speedy {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-delete {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-content {&lt;br /&gt;
    border: 3px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-style {&lt;br /&gt;
    border: 3px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-move {&lt;br /&gt;
    border: 3px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-protection {&lt;br /&gt;
    border: 3px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-license {&lt;br /&gt;
    border: 3px solid #88a;       /* Dark gray */&lt;br /&gt;
    background: #f7f8ff;          /* Light gray */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-featured {&lt;br /&gt;
    border: 3px solid #cba135;    /* Brown-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category message box styles */&lt;br /&gt;
table.cmbox {&lt;br /&gt;
    margin: 3px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #DFE8FF;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.cmbox-notice {&lt;br /&gt;
    background: #D8E8FF;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-speedy {&lt;br /&gt;
    margin-top: 4px;&lt;br /&gt;
    margin-bottom: 4px;&lt;br /&gt;
    border: 4px solid #b22222;    /* Red */&lt;br /&gt;
    background: #FFDBDB;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-delete {&lt;br /&gt;
    background: #FFDBDB;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-content {&lt;br /&gt;
    background: #FFE7CE;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-style {&lt;br /&gt;
    background: #FFF9DB;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-move {&lt;br /&gt;
    background: #E4D8FF;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-protection {&lt;br /&gt;
    background: #EFEFE1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Other pages message box styles */&lt;br /&gt;
table.ombox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;       /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
    border: 1px solid #aaa;       /* Gray */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
    border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
    border: 1px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
    border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
    border: 2px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Talk page message box styles */&lt;br /&gt;
table.tmbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #c0c090;    /* Default &amp;quot;notice&amp;quot; gray-brown */&lt;br /&gt;
    background: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The &amp;quot;mediawiki&amp;quot; class ensures that */&lt;br /&gt;
    margin: 2px 0;               /* this declaration overrides other styles (including mbox-small above)   */&lt;br /&gt;
    width: 100%;                 /* For Safari and Opera */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .tmbox.mbox-small { /* &amp;quot;small&amp;quot; tmboxes should not be small when  */&lt;br /&gt;
    line-height: 1.5em;          /* also &amp;quot;nested&amp;quot;, so reset styles that are   */&lt;br /&gt;
    font-size: 100%;             /* set in &amp;quot;mbox-small&amp;quot; above.                */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.tmbox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-content {&lt;br /&gt;
    border: 2px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-style {&lt;br /&gt;
    border: 2px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-move {&lt;br /&gt;
    border: 2px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-protection,&lt;br /&gt;
table.tmbox-notice {&lt;br /&gt;
    border: 1px solid #c0c090;    /* Gray-brown */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disambig and set index box styles */&lt;br /&gt;
table.dmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.9em 1em;&lt;br /&gt;
    border-top: 1px solid #ccc;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer and header message box styles */&lt;br /&gt;
table.fmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;     /* Default &amp;quot;system&amp;quot; gray */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-system {&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-warning {&lt;br /&gt;
    border: 1px solid #bb7070;  /* Dark pink */&lt;br /&gt;
    background: #ffdbdb;        /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-editnotice {&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;warning&amp;quot; style fmbox messages. */&lt;br /&gt;
div.mw-warning-with-logexcerpt,&lt;br /&gt;
div.mw-lag-warn-high,&lt;br /&gt;
div.mw-cascadeprotectedwarning,&lt;br /&gt;
div#mw-protect-cascadeon,&lt;br /&gt;
div.titleblacklist-warning,&lt;br /&gt;
div.locked-warning {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #bb7070;&lt;br /&gt;
    background: #ffdbdb;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;system&amp;quot; style fmbox messages.&lt;br /&gt;
   Used in [[MediaWiki:Readonly lag]]. */&lt;br /&gt;
div.mw-lag-warn-normal,&lt;br /&gt;
div.fmbox-system {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** TABLE CLASSES **/&lt;br /&gt;
.table {&lt;br /&gt;
  border:0 solid;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  clear:none;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  display:inline-block;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  margin:5px 0;&lt;br /&gt;
  padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* make table captions bold */&lt;br /&gt;
.table &amp;gt; caption { font-weight: bold }&lt;br /&gt;
&lt;br /&gt;
/* this is a hack to add borders to IE8- */&lt;br /&gt;
.table &amp;gt; thead, .table &amp;gt; tbody { border:0 solid #aaa\0/ }&lt;br /&gt;
&lt;br /&gt;
.table tr {&lt;br /&gt;
  border:1px solid #aaa\0/;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* and this removes them for IE9+ */&lt;br /&gt;
:root .table tr { border-top-width:0; border-bottom-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :first-child { border-left:1px solid #AAA; }&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :last-child { border-right:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; caption { border-bottom:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody:first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading &amp;gt; *,&lt;br /&gt;
.table &amp;gt; thead &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
  padding:.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; td,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  padding:.25em .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table tr &amp;gt; th, .table[class*=center] tr { text-align:center; }&lt;br /&gt;
.table[class*=left] tr { text-align:left; }&lt;br /&gt;
.table[class*=right] tr { text-align:right; }&lt;br /&gt;
.table[class*=middle] tr { vertical-align:middle; }&lt;br /&gt;
.table[class*=top] tr { vertical-align:top; }&lt;br /&gt;
.table[class*=bottom] tr { vertical-align:bottom; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border:1px solid #aaa!important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th, .table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  background-color:#E7E7E7;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
  background-color:#F3F3F3;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [rowspan],&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [colspan] { border:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [rowspan],&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [colspan] { border-top-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table .line,&lt;br /&gt;
.table .line-bottom {&lt;br /&gt;
  border-bottom-width:1px!important;&lt;br /&gt;
  border-bottom-style:solid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-top {&lt;br /&gt;
  border-top-width:1px!important;&lt;br /&gt;
  border-top-style:solid;&lt;br /&gt;
  border-top-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-left {&lt;br /&gt;
  border-left-width:1px!important;&lt;br /&gt;
  border-left-style:solid;&lt;br /&gt;
  border-left-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-right {&lt;br /&gt;
  border-right-width:1px!important;&lt;br /&gt;
  border-right-style:solid;&lt;br /&gt;
  border-right-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table table {&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dl+table.table {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** STDT table classes **/&lt;br /&gt;
/* any */&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#888 !important;&lt;br /&gt;
    border-color:#6D6D6D !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.any &amp;gt; th {&lt;br /&gt;
    background-color:#CCC;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.any:nth-child(odd) {&lt;br /&gt;
    background-color:#EEE;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* career */&lt;br /&gt;
  .table.career { width: auto; min-width: 68%; max-width:2400px; display:table; text-align:center; vertical-align:middle;}&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-image:linear-gradient(to top, #E7E7E7, #EFEFEF);&lt;br /&gt;
    border-color:#AAA; !important;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; thead &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.career &amp;gt; th {&lt;br /&gt;
    background-color:#F3F3F3; !important;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.career:nth-child(odd) {&lt;br /&gt;
    background-color:#F3F3F3;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* guardian */&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#72C1D9 !important;&lt;br /&gt;
    border-color:#5B9AAE !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.guardian &amp;gt; th {&lt;br /&gt;
    background-color:#B9E0EC;&lt;br /&gt;
    border-color:#94B3BD;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.guardian:nth-child(odd) {&lt;br /&gt;
    background-color:#EAF6F9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* mesmer */&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#B679D5 !important;&lt;br /&gt;
    border-color:#9261AA !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.mesmer &amp;gt; th {&lt;br /&gt;
    background-color:#DBBCEA;&lt;br /&gt;
    border-color:#AF96BB;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.mesmer:nth-child(odd) {&lt;br /&gt;
    background-color:#F4EBF9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/** Restore sort icons for sortable table headers **/&lt;br /&gt;
/* These are inserted as CSS background-image, which clashes with our fancy gradient overlays */&lt;br /&gt;
table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  padding:0.5em;&lt;br /&gt;
  padding-right:21px;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* And finally jquery overlays for tables that also use .table classes (two background images) */&lt;br /&gt;
table.table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* These mbox-small classes must be placed after all other&lt;br /&gt;
   ambox/tmbox/ombox etc classes. &amp;quot;body.mediawiki&amp;quot; is so&lt;br /&gt;
   they override &amp;quot;table.ambox + table.ambox&amp;quot; above. */&lt;br /&gt;
body.mediawiki table.mbox-small {   /* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 0 4px 1em;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki table.mbox-small-left {   /* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 1em 4px 0;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for compact ambox */&lt;br /&gt;
/* Hide the images */&lt;br /&gt;
.compact-ambox table .mbox-image,&lt;br /&gt;
.compact-ambox table .mbox-imageright,&lt;br /&gt;
.compact-ambox table .mbox-empty-cell {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Remove borders, backgrounds, padding, etc. */&lt;br /&gt;
.compact-ambox table.ambox {&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    margin: 0 0 0 1.6em !important;&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki .compact-ambox table.mbox-small-left {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Style the text cell as a list item and remove its padding */&lt;br /&gt;
.compact-ambox table .mbox-text {&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
.compact-ambox table .mbox-text-span {&lt;br /&gt;
    display: list-item;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style-type: square;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/MonoBook/bullet.gif);&lt;br /&gt;
}&lt;br /&gt;
.skin-vector .compact-ambox table .mbox-text-span {&lt;br /&gt;
    list-style-type: disc;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/Vector/images/bullet-icon.png)&lt;br /&gt;
}&lt;br /&gt;
/* Allow for hiding text in compact form */&lt;br /&gt;
.compact-ambox .hide-when-compact {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove default styles for [[MediaWiki:Noarticletext]]. */&lt;br /&gt;
div.noarticletext {&lt;br /&gt;
    border: none;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide (formatting) elements from screen, but not from screenreaders */&lt;br /&gt;
.visualhide {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: -10000px;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
    height: 1px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bold save button */&lt;br /&gt;
#wpSave {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */&lt;br /&gt;
.hiddenStructure {&lt;br /&gt;
    display: inline !important;&lt;br /&gt;
    color: #f00;&lt;br /&gt;
    background-color: #0f0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* suppress missing interwiki image links where #ifexist cannot&lt;br /&gt;
   be used due to high number of requests see .hidden-redlink on&lt;br /&gt;
   [[m:MediaWiki:Common.css]] */&lt;br /&gt;
.check-icon a.new {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Removes underlines from certain links */&lt;br /&gt;
.nounderlines a,&lt;br /&gt;
.IPA a:link, .IPA a:visited {&lt;br /&gt;
    text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Standard Navigationsleisten, aka box hiding thingy&lt;br /&gt;
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */&lt;br /&gt;
div.NavFrame {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame + div.NavFrame {&lt;br /&gt;
    border-top-style: none;&lt;br /&gt;
    border-top-style: hidden;&lt;br /&gt;
}&lt;br /&gt;
div.NavPic {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame div.NavHead {&lt;br /&gt;
    line-height: 1.6em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background-color: #ccf;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame p,&lt;br /&gt;
div.NavFrame div.NavContent,&lt;br /&gt;
div.NavFrame div.NavContent p {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
div.NavEnd {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1px;&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
a.NavToggle {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    right: 3px;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hatnotes and disambiguation notices */&lt;br /&gt;
.hatnote {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.hatnote i {&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote + div.hatnote {&lt;br /&gt;
    margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow transcluded pages to display in lists rather than a table.&lt;br /&gt;
   Compatible in Firefox; incompatible in IE6. */&lt;br /&gt;
.listify td    { display: list-item; }&lt;br /&gt;
.listify tr    { display: block; }&lt;br /&gt;
.listify table { display: block; }&lt;br /&gt;
&lt;br /&gt;
.lirev ol,.lirev ul{display:flex;flex-direction:column-reverse;list-style-type:disc;width:240px}&lt;br /&gt;
center &amp;gt; ul {list-style:none}&lt;br /&gt;
&lt;br /&gt;
/* Geographical coordinates defaults. See [[Template:Coord/link]]&lt;br /&gt;
   for how these are used. The classes &amp;quot;geo&amp;quot;, &amp;quot;longitude&amp;quot;, and&lt;br /&gt;
   &amp;quot;latitude&amp;quot; are used by the [[Geo microformat]]. */&lt;br /&gt;
.geo-default, .geo-dms, .geo-dec  { display: inline; }&lt;br /&gt;
.geo-nondefault, .geo-multi-punct { display: none; }&lt;br /&gt;
.longitude, .latitude             { white-space: nowrap; }&lt;br /&gt;
&lt;br /&gt;
/* When &amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt; is used on the table of contents,&lt;br /&gt;
   the ToC will display without numbers */&lt;br /&gt;
.nonumtoc .tocnumber {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.nonumtoc #toc ul,&lt;br /&gt;
.nonumtoc .toc ul {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: .3em 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.hlist.nonumtoc #toc ul ul,&lt;br /&gt;
.hlist.nonumtoc .toc ul ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow limiting of which header levels are shown in a TOC;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;, for instance, will limit to&lt;br /&gt;
   showing ==headings== and ===headings=== but no further&lt;br /&gt;
   (as long as there are no =headings= on the page, which&lt;br /&gt;
   there shouldn&#039;t be according to the MoS). */&lt;br /&gt;
.toclimit-2 .toclevel-1 ul,&lt;br /&gt;
.toclimit-3 .toclevel-2 ul,&lt;br /&gt;
.toclimit-4 .toclevel-3 ul,&lt;br /&gt;
.toclimit-5 .toclevel-4 ul,&lt;br /&gt;
.toclimit-6 .toclevel-5 ul,&lt;br /&gt;
.toclimit-7 .toclevel-6 ul {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for Template:Quote */&lt;br /&gt;
blockquote.templatequote {&lt;br /&gt;
     margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
blockquote.templatequote div.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* User block messages */&lt;br /&gt;
div.user-block {&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    border: 1px solid #A9A9A9;&lt;br /&gt;
    background-color: #FFEFD5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent line breaks in silly places:&lt;br /&gt;
   1) Where desired&lt;br /&gt;
   2) Links when we don&#039;t want them to&lt;br /&gt;
   3) Bold &amp;quot;links&amp;quot; to the page itself&lt;br /&gt;
   4) Ref tags with group names &amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt; --&amp;gt; &amp;quot;[Note 1]&amp;quot; */&lt;br /&gt;
.nowrap,&lt;br /&gt;
.nowraplinks a,&lt;br /&gt;
.nowraplinks .selflink,&lt;br /&gt;
sup.reference a {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
/* But allow wrapping where desired: */&lt;br /&gt;
.wrap,&lt;br /&gt;
.wraplinks a {&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For template documentation */&lt;br /&gt;
.template-documentation {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 1em 0 0 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #ecfcf4;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Inline divs in ImageMaps (code borrowed from de.wiki) */&lt;br /&gt;
.imagemap-inline div {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Increase the height of the image upload box */&lt;br /&gt;
#wpUploadDescription {&lt;br /&gt;
    height: 13em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    margin: 1px;&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
img.thumbborder {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px !important;&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    background-color: #f9f9f9 !important;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbcaption {&lt;br /&gt;
    color: #252525 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Minimum thumb width */&lt;br /&gt;
.thumbinner {&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Makes the background of a framed image white instead of gray.&lt;br /&gt;
   Only visible with transparent images. */&lt;br /&gt;
div.thumb .thumbimage {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The backgrounds for galleries. */&lt;br /&gt;
div#content .gallerybox div.thumb {&lt;br /&gt;
    /* Light gray padding */&lt;br /&gt;
    background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
/* Put a chequered background behind images, only visible if they have transparency.&lt;br /&gt;
   &#039;.filehistory a img&#039; and &#039;#file img:hover&#039; are handled by MediaWiki core (as of 1.19) */&lt;br /&gt;
.gallerybox .thumb img {&lt;br /&gt;
    background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;&lt;br /&gt;
}&lt;br /&gt;
/* But not on articles, user pages, portals or with opt-out. */&lt;br /&gt;
.ns-0 .gallerybox .thumb img,&lt;br /&gt;
.ns-2 .gallerybox .thumb img,&lt;br /&gt;
.ns-100 .gallerybox .thumb img,&lt;br /&gt;
.nochecker .gallerybox .thumb img {&lt;br /&gt;
    background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating boxes from overlapping any category listings,&lt;br /&gt;
   file histories, edit previews, and edit [Show changes] views. */&lt;br /&gt;
#mw-subcategories, #mw-pages, #mw-category-media,&lt;br /&gt;
#filehistory, #wikiPreview, #wikiDiff {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {&lt;br /&gt;
    display: block;   /* Override inline block mode */&lt;br /&gt;
    margin-bottom: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;     /* Clear any info boxes that stick out */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;     /* Prevents margin collapsing */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Selectively hide headers in WikiProject banners */&lt;br /&gt;
.wpb .wpb-header             { display: none; }&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: block; }     /* for IE */&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */&lt;br /&gt;
.wpbs-inner .wpb-outside     { display: none; }      /* hide things that should only display outside shells */&lt;br /&gt;
&lt;br /&gt;
/* Styling for Abuse Filter tags */&lt;br /&gt;
.mw-tag-markers {&lt;br /&gt;
    font-family:sans-serif;&lt;br /&gt;
    font-style:italic;&lt;br /&gt;
    font-size:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide stuff meant for accounts with special permissions. Made visible again in&lt;br /&gt;
   [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],&lt;br /&gt;
   [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */&lt;br /&gt;
.sysop-show,&lt;br /&gt;
.accountcreator-show,&lt;br /&gt;
.templateeditor-show,&lt;br /&gt;
.autoconfirmed-show {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Hide the redlink generated by {{Editnotice}},&lt;br /&gt;
 * this overrides the &amp;quot;.sysop-show { display: none; }&amp;quot; above that applies&lt;br /&gt;
 * to the same link as well.&lt;br /&gt;
 *&lt;br /&gt;
 * See [[Phabricator:45013]].&lt;br /&gt;
 */&lt;br /&gt;
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink, .mw-ve-editNotice .editnotice-redlink {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove bullets when there are multiple edit page warnings */&lt;br /&gt;
ul.permissions-errors &amp;gt; li {&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
}&lt;br /&gt;
ul.permissions-errors {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No linewrap on the labels of the login/signup page */&lt;br /&gt;
body.page-Special_UserLogin .mw-label label,&lt;br /&gt;
body.page-Special_UserLogin_signup .mw-label label {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pie chart test: Transparent borders */&lt;br /&gt;
.transborder {&lt;br /&gt;
    border: solid transparent;&lt;br /&gt;
}&lt;br /&gt;
* html .transborder {  /* IE6 */&lt;br /&gt;
    border: solid #000001;&lt;br /&gt;
    filter: chroma(color=#000001);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for updated markers on watchlist, history and recent/related changes.&lt;br /&gt;
   Bullets are handled in skin-specific stylesheets. */&lt;br /&gt;
.updatedmarker {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #006400;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist .mw-changeslist-line-watched .mw-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist #mw-watchlist-resetbutton {&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
.mw-enhanced-watched .mw-enhanced-rc-time {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generic class for Times-based serif, texhtml class for inline math */&lt;br /&gt;
.times-serif,&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    font-family: &amp;quot;Nimbus Roman No9 L&amp;quot;, &amp;quot;Times New Roman&amp;quot;, Times, serif;&lt;br /&gt;
    font-size: 118%;&lt;br /&gt;
    line-height: 0.5;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml span.texhtml {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Force tabular and lining display for digits and texhtml */&lt;br /&gt;
.digits,&lt;br /&gt;
.texhtml {&lt;br /&gt;
    -moz-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    -webkit-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-variant-numeric: lining-nums tabular-nums;&lt;br /&gt;
    font-kerning: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display tabs with 4 spaces, see [[Phabricator:59824]] and [[Phabricator:59825]] */&lt;br /&gt;
div.mw-geshi div,&lt;br /&gt;
div.mw-geshi div pre,&lt;br /&gt;
span.mw-geshi,&lt;br /&gt;
pre.source-css,&lt;br /&gt;
pre.source-javascript,&lt;br /&gt;
pre.source-lua {&lt;br /&gt;
    -moz-tab-size: 4;&lt;br /&gt;
    -o-tab-size: 4;&lt;br /&gt;
    tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix styling of transcluded prefindex tables */&lt;br /&gt;
table#mw-prefixindex-list-table,&lt;br /&gt;
table#mw-prefixindex-nav-table {&lt;br /&gt;
    width: 98%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For portals, added 2011-12-07 -bv&lt;br /&gt;
   On wide screens, show these as two columns&lt;br /&gt;
   On narrow and mobile screens, let them collapse into a single column */&lt;br /&gt;
.portal-column-left {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 49%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 60%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 39%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-extra-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 70%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-extra-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 29%;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 800px) {&lt;br /&gt;
    /* Decouple the columns on narrow screens */&lt;br /&gt;
    .portal-column-left,&lt;br /&gt;
    .portal-column-right,&lt;br /&gt;
    .portal-column-left-wide,&lt;br /&gt;
    .portal-column-right-narrow,&lt;br /&gt;
    .portal-column-left-extra-wide,&lt;br /&gt;
    .portal-column-right-extra-narrow {&lt;br /&gt;
        float: inherit;&lt;br /&gt;
        width: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For announcements */&lt;br /&gt;
#bodyContent .letterhead {&lt;br /&gt;
    background-image:url(&#039;//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png&#039;);&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    padding: 2em;&lt;br /&gt;
    background-color: #faf9f2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tree style lists */&lt;br /&gt;
.treeview ul {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
}&lt;br /&gt;
.treeview li {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    zoom: 1; /* BE KIND TO IE6 */;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png&amp;quot;) no-repeat 0 -2981px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 20px;&lt;br /&gt;
    text-indent: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li.lastline {&lt;br /&gt;
    background-position: 0 -5971px&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: -1px;&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul &amp;gt; li:first-child {&lt;br /&gt;
    background-position: 0 9px&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* hidden sortkey for tablesorter */&lt;br /&gt;
td .sortkey,&lt;br /&gt;
th .sortkey {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make it possible to hide checkboxes in &amp;lt;inputbox&amp;gt; */&lt;br /&gt;
.inputbox-hidecheckboxes form .inputbox-element {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */&lt;br /&gt;
.k-player .k-attribution {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Move &#039;play&#039; button of video player to bottom left corner */&lt;br /&gt;
.PopUpMediaTransform a .play-btn-large {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    right: auto;&lt;br /&gt;
    bottom: 0;&lt;br /&gt;
    left: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Workaround to keep editnotices readable in VE view.&lt;br /&gt;
   Long term, editnotices should become a core feature so that they can be designed responsive. */&lt;br /&gt;
.mw-ve-editNotice .mbox-image {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Movies */&lt;br /&gt;
.actor-image a img, .gadget-image a img {&lt;br /&gt;
  border: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.top-align td, .actor-appearances-table td, .gadget-appearances-table td {&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.actor-appearances-table .thumb, .gadget-appearances-table .thumb {&lt;br /&gt;
  margin-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Margins for &amp;lt;ol&amp;gt; and &amp;lt;ul&amp;gt; */&lt;br /&gt;
div#content ol, div#content ul,&lt;br /&gt;
div#mw_content ol, div#mw_content ul {&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* actortable class for skinning actor tables */&lt;br /&gt;
&lt;br /&gt;
table.actortable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th, table.actortable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.nospacing p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a,table.headerlink th a.new {&lt;br /&gt;
  color: #FFFFFF;&lt;br /&gt;
  border-bottom: 1px dotted #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a:hover {&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th, table.chartable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* wikitable/prettytable class for skinning normal tables */&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.prettytable {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable.seasontable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5bbd53;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.volumetable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #647dd1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.movietable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #A153D2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.ovatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #f08f31;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.dramatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #67A56E;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.bodybuildingcompetition th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5E7EAF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.gadgettable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #FF9900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.collectibletable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #69C3A5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* JS Tab System, Jacked and Hacked from the jsprefs in monobook/main.css -Dantman */&lt;br /&gt;
.tabtoc {&lt;br /&gt;
	margin: 0 !important;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	color: #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	margin: 1px -2px 1px 2px;&lt;br /&gt;
	float: left;&lt;br /&gt;
	padding: 2px 0 3px 0;&lt;br /&gt;
	border: none;&lt;br /&gt;
	top:4px;&lt;br /&gt;
	left:-2px;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	list-style-type: none;&lt;br /&gt;
	list-style-image: none;&lt;br /&gt;
	z-index: 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected {&lt;br /&gt;
	border-radius: 5px 5px 0 0;&lt;br /&gt;
	-webkit-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-moz-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-ms-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-o-border-radius: 5px 5px 0 0;&lt;br /&gt;
	top: 2px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	background-color: #f9f9f9;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	padding-top: 2px;&lt;br /&gt;
	margin-right: -3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc &amp;gt;; li.selected {&lt;br /&gt;
	top: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc a,&lt;br /&gt;
.tabtoc a:active {&lt;br /&gt;
	display: block;&lt;br /&gt;
	color: #000;&lt;br /&gt;
	padding: 0 .7em;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected a {&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabcontainer {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	padding: 7px;&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tabbox {&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin-right: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tab {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection table, .tabsection .tab {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.mainTab {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2964</id>
		<title>Module:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2964"/>
		<updated>2025-03-15T00:48:22Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module handles the display of XVideos RED channel information&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load the i18n submodule for text strings and error messages&lt;br /&gt;
local i18n = require(&#039;Module:XVideosRedList/i18n&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Base URL for XVideos RED&lt;br /&gt;
local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot;&lt;br /&gt;
-- Suffix to append to all XVideos RED URLs&lt;br /&gt;
local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Tab suffix added after the main suffix&lt;br /&gt;
local TAB_SUFFIX = &amp;quot;#_tabRed&amp;quot;&lt;br /&gt;
-- Main header URL for title link&lt;br /&gt;
local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Default category for all channels&lt;br /&gt;
local DEFAULT_CATEGORY = &amp;quot;XVideos RED models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Genre categories mapping&lt;br /&gt;
local GENRE_CATEGORIES = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;XVideos RED (gay) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;XVideos RED (heterosexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;XVideos RED (bisexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;XVideos RED (transsexual) models&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Genre display order priority&lt;br /&gt;
local GENRE_PRIORITY = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = 1,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = 2,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = 3,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = 4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a table contains a specific value&lt;br /&gt;
-- @param tbl table: The table to search&lt;br /&gt;
-- @param value any: The value to find&lt;br /&gt;
-- @return boolean: True if the value is found, false otherwise&lt;br /&gt;
function table.contains(tbl, value)&lt;br /&gt;
    for _, v in pairs(tbl) do&lt;br /&gt;
        if v == value then return true end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to format error message in red bold text&lt;br /&gt;
-- @param error string: The error message&lt;br /&gt;
-- @return string: Formatted error message&lt;br /&gt;
local function formatError(error)&lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:center;vertical-align:middle;color:red;font-weight:bold;&amp;quot; | %s\n&#039;, error)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Table of genres with their aliases for normalization&lt;br /&gt;
-- Each key is a standard genre name, and the value is a list of aliases or abbreviations&lt;br /&gt;
local genres = {&lt;br /&gt;
    Straight = {&amp;quot;s&amp;quot;, &amp;quot;str&amp;quot;, &amp;quot;str8&amp;quot;},&lt;br /&gt;
    Gay = {&amp;quot;g&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homosexual&amp;quot;},&lt;br /&gt;
    Transexual = {&amp;quot;t&amp;quot;, &amp;quot;trans&amp;quot;, &amp;quot;tra&amp;quot;, &amp;quot;trs&amp;quot;},&lt;br /&gt;
    Bisexual = {&amp;quot;b&amp;quot;, &amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Table of icons for standard genres&lt;br /&gt;
-- Maps standard genre names to their corresponding icon file names&lt;br /&gt;
local iconMap = {&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;StraightIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;GayIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;TranssexualIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;BisexualIconPNG.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Function to normalize genre input to a standard genre name&lt;br /&gt;
-- @param input string: The genre input to normalize&lt;br /&gt;
-- @return string: The standard genre name if matched, otherwise the original input&lt;br /&gt;
-- @return boolean: True if the genre is valid, false otherwise&lt;br /&gt;
local function normalizeGenre(input)&lt;br /&gt;
    if not input or input == &#039;&#039; then&lt;br /&gt;
        return nil, false&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lowerInput = input:lower()  -- Convert input to lowercase for case-insensitive comparison&lt;br /&gt;
    for standard, aliases in pairs(genres) do&lt;br /&gt;
        if lowerInput == standard:lower() or table.contains(aliases, lowerInput) then&lt;br /&gt;
            return standard, true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return input, false  -- Return original input if no match is found, plus flag indicating no match&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format multiple genres with proper icons and formatting&lt;br /&gt;
-- @param genreList table: List of normalized genre names&lt;br /&gt;
-- @return string: Formatted genres with icons and proper separators&lt;br /&gt;
local function formatGenres(genreList)&lt;br /&gt;
    if #genreList == 0 then&lt;br /&gt;
        return &#039;&amp;lt;span style=&amp;quot;color:red;font-weight:bold;&amp;quot;&amp;gt;&#039; .. i18n.errors.noGenreProvided .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Sort genres according to priority order&lt;br /&gt;
    table.sort(genreList, function(a, b) &lt;br /&gt;
        return (GENRE_PRIORITY[a] or 99) &amp;lt; (GENRE_PRIORITY[b] or 99)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    local formattedGenres = {}&lt;br /&gt;
    for _, genre in ipairs(genreList) do&lt;br /&gt;
        if iconMap[genre] then&lt;br /&gt;
            table.insert(formattedGenres, string.format(&#039;[[File:%s|13px|link=]] %s&#039;, iconMap[genre], genre))&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(formattedGenres, genre)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Format with appropriate separators based on the number of genres&lt;br /&gt;
    if #formattedGenres == 1 then&lt;br /&gt;
        return formattedGenres[1]&lt;br /&gt;
    elseif #formattedGenres == 2 then&lt;br /&gt;
        return formattedGenres[1] .. &#039; &amp;amp; &#039; .. formattedGenres[2]&lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;&lt;br /&gt;
        for i = 1, #formattedGenres - 1 do&lt;br /&gt;
            if i == #formattedGenres - 1 then&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039; &amp;amp; &#039;&lt;br /&gt;
            else&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039;, &#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return result .. formattedGenres[#formattedGenres]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format country flag using frame:expandTemplate&lt;br /&gt;
-- @param country string: The country code or name&lt;br /&gt;
-- @param frame table: The current frame object for template expansion&lt;br /&gt;
-- @return string: Formatted country flag or empty string if country is nil or empty&lt;br /&gt;
local function formatCountryFlag(country, frame)&lt;br /&gt;
    if not country or country == &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Use frame:expandTemplate to process the flagicon template&lt;br /&gt;
    local flagTemplate = frame:expandTemplate{&lt;br /&gt;
        title = &#039;flagicon&#039;,&lt;br /&gt;
        args = { country }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return flagTemplate .. &#039; &#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to handle channel information display&lt;br /&gt;
-- @param frame table: The frame object passed from the template&lt;br /&gt;
-- @return string: The formatted table row or an error message&lt;br /&gt;
function p.channel(frame)&lt;br /&gt;
    -- Get template arguments&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:XVideosRedList&#039;})&lt;br /&gt;
    &lt;br /&gt;
    -- Check if channel parameter is provided&lt;br /&gt;
    if not args.channel or args.channel == &#039;&#039; then&lt;br /&gt;
        return formatError(i18n.errors.channelIsEmpty)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get channel data&lt;br /&gt;
    local channel, error = getChannel(args.channel)&lt;br /&gt;
&lt;br /&gt;
    if error then&lt;br /&gt;
        return formatError(error)&lt;br /&gt;
    elseif channel then&lt;br /&gt;
        -- Format channel data, prioritizing template arguments over module data&lt;br /&gt;
        local alias = args.alias or channel.alias or &#039;N/A&#039;&lt;br /&gt;
        &lt;br /&gt;
        -- Fix for empty notes field&lt;br /&gt;
        local notes = args.notes or channel.notes or &#039;N/A&#039;&lt;br /&gt;
        if notes == &amp;quot;&amp;quot; then&lt;br /&gt;
            notes = &#039;N/A&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process multiple genres&lt;br /&gt;
        local genreList = {}&lt;br /&gt;
        local invalidGenres = {}&lt;br /&gt;
        &lt;br /&gt;
        -- Process primary genre&lt;br /&gt;
        local primaryGenre = args.genre or channel.genre or &#039;&#039;&lt;br /&gt;
        local normalizedGenre, isValid = normalizeGenre(primaryGenre)&lt;br /&gt;
        if normalizedGenre then&lt;br /&gt;
            table.insert(genreList, normalizedGenre)&lt;br /&gt;
            if not isValid then&lt;br /&gt;
                table.insert(invalidGenres, primaryGenre)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process additional genres (genre2, genre3, genre4)&lt;br /&gt;
        for i = 2, 4 do&lt;br /&gt;
            local genreArg = args[&#039;genre&#039;..i]&lt;br /&gt;
            if genreArg and genreArg ~= &#039;&#039; then&lt;br /&gt;
                local normalized, valid = normalizeGenre(genreArg)&lt;br /&gt;
                if normalized and not table.contains(genreList, normalized) then&lt;br /&gt;
                    table.insert(genreList, normalized)&lt;br /&gt;
                    if not valid then&lt;br /&gt;
                        table.insert(invalidGenres, genreArg)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Check if at least one valid genre was provided&lt;br /&gt;
        if #genreList == 0 then&lt;br /&gt;
            return formatError(i18n.errors.noGenreProvided)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Format genres with appropriate icons and separators&lt;br /&gt;
        local genreOutput = formatGenres(genreList)&lt;br /&gt;
        &lt;br /&gt;
        -- Log any invalid genres for debugging&lt;br /&gt;
        for _, invalidGenre in ipairs(invalidGenres) do&lt;br /&gt;
            mw.log(string.format(i18n.errors.invalidGenre, invalidGenre))&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Handle channel URL and country flag&lt;br /&gt;
        local channelUrl = &amp;quot;&amp;quot;&lt;br /&gt;
        local channelDisplay = channel.name&lt;br /&gt;
        local countryFlag = formatCountryFlag(channel.country, frame)&lt;br /&gt;
        &lt;br /&gt;
        if channel.channel and channel.channel ~= &#039;&#039; then&lt;br /&gt;
            channelUrl = BASE_URL .. channel.channel .. URL_SUFFIX .. TAB_SUFFIX&lt;br /&gt;
            channelDisplay = string.format(&#039;%s[%s %s]&#039;, countryFlag, channelUrl, channel.name)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Format row with gathered data&lt;br /&gt;
        local result = string.format(&lt;br /&gt;
            &#039;|-\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;display:none;&amp;quot; |\n&#039;,&lt;br /&gt;
            channelDisplay,&lt;br /&gt;
            genreOutput,&lt;br /&gt;
            alias,&lt;br /&gt;
            notes&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
        -- Add categories based on namespace and genres&lt;br /&gt;
        local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
        if ns == 0 then&lt;br /&gt;
            -- Add default category for all entries&lt;br /&gt;
            result = result .. &#039;[[Category:&#039; .. DEFAULT_CATEGORY .. &#039;]]&#039;&lt;br /&gt;
            &lt;br /&gt;
            -- Add genre-specific categories&lt;br /&gt;
            for _, genre in ipairs(genreList) do&lt;br /&gt;
                if GENRE_CATEGORIES[genre] then&lt;br /&gt;
                    result = result .. &#039;[[Category:&#039; .. GENRE_CATEGORIES[genre] .. &#039;]]&#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            -- Add tracking category for main namespace&lt;br /&gt;
            result = result .. &#039;[[Category:Articles using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 2 then&lt;br /&gt;
            result = result .. &#039;[[Category:User pages using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 118 then&lt;br /&gt;
            result = result .. &#039;[[Category:Draft pages using XVideosRedList]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return formatError(string.format(i18n.errors.channelNotFound, args.channel))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to find and retrieve channel data from appropriate module&lt;br /&gt;
-- @param name string: The name of the channel to find&lt;br /&gt;
-- @return table|string: The channel data table or an error message&lt;br /&gt;
function getChannel(name)&lt;br /&gt;
    if not name then return nil, i18n.errors.channelIsEmpty end&lt;br /&gt;
    &lt;br /&gt;
    local modulesToTry = {}&lt;br /&gt;
    local firstLetter = name:sub(1, 1):upper()&lt;br /&gt;
    table.insert(modulesToTry, firstLetter)&lt;br /&gt;
    &lt;br /&gt;
    -- Handle &amp;quot;The&amp;quot; prefix&lt;br /&gt;
    local nameWithoutThe = name:lower():gsub(&amp;quot;^the%s*&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if nameWithoutThe ~= name:lower() then&lt;br /&gt;
        local theFirstLetter = nameWithoutThe:sub(1, 1):upper()&lt;br /&gt;
        if theFirstLetter ~= firstLetter then&lt;br /&gt;
            table.insert(modulesToTry, theFirstLetter)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, module in ipairs(modulesToTry) do&lt;br /&gt;
        local success, channelModule = pcall(require, &#039;Module:XVideosRedList/&#039; .. module)&lt;br /&gt;
        &lt;br /&gt;
        if success then&lt;br /&gt;
            if type(channelModule) == &amp;quot;table&amp;quot; and type(channelModule.channels) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                local matchedChannels = {}&lt;br /&gt;
                &lt;br /&gt;
                -- First try direct match or aliases&lt;br /&gt;
                for _, channel in pairs(channelModule.channels) do&lt;br /&gt;
                    if channel.name:lower() == name:lower() or &lt;br /&gt;
                       (channel.aliases and table.contains(channel.aliases, name:lower())) then&lt;br /&gt;
                        table.insert(matchedChannels, channel)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If found matches, return results&lt;br /&gt;
                if #matchedChannels &amp;gt; 1 then&lt;br /&gt;
                    return nil, string.format(i18n.errors.duplicateChannels, name)&lt;br /&gt;
                elseif #matchedChannels == 1 then&lt;br /&gt;
                    return matchedChannels[1]&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If no direct matches found, try redirects&lt;br /&gt;
                if channelModule.redirects and channelModule.redirects[name:lower()] then&lt;br /&gt;
                    return getChannel(channelModule.redirects[name:lower()])&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                mw.log(string.format(i18n.errors.invalidModuleStructure, module))&lt;br /&gt;
                return nil, string.format(i18n.errors.invalidModuleStructure, module)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log(string.format(i18n.errors.moduleLoadError, module))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil, string.format(i18n.errors.channelNotFound, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to generate the table header with XVideos RED logo link&lt;br /&gt;
-- @return string: The formatted table header&lt;br /&gt;
function p.tableHeader()&lt;br /&gt;
    local headerLink = string.format(&#039;[[File:Xvideosredlogo.svg|24px|link=]] [%s XVideos RED]&#039;, HEADER_URL)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;! colspan=&amp;quot;5&amp;quot; | %s\n|-\n!style=&amp;quot;width: 30%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Studio name\n!style=&amp;quot;width: 20%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Genre\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Alias\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Notes\n!style=&amp;quot;display:none;&amp;quot; |\n&#039;, headerLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2963</id>
		<title>Module:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2963"/>
		<updated>2025-03-15T00:41:42Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module handles the display of XVideos RED channel information&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load the i18n submodule for text strings and error messages&lt;br /&gt;
local i18n = require(&#039;Module:XVideosRedList/i18n&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Base URL for XVideos RED&lt;br /&gt;
local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot;&lt;br /&gt;
-- Suffix to append to all XVideos RED URLs&lt;br /&gt;
local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35#_tabRed&amp;quot;&lt;br /&gt;
-- Main header URL for title link&lt;br /&gt;
local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Default category for all channels&lt;br /&gt;
local DEFAULT_CATEGORY = &amp;quot;XVideos RED models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Genre categories mapping&lt;br /&gt;
local GENRE_CATEGORIES = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;XVideos RED (gay) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;XVideos RED (heterosexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;XVideos RED (bisexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;XVideos RED (transsexual) models&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Genre display order priority&lt;br /&gt;
local GENRE_PRIORITY = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = 1,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = 2,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = 3,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = 4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a table contains a specific value&lt;br /&gt;
-- @param tbl table: The table to search&lt;br /&gt;
-- @param value any: The value to find&lt;br /&gt;
-- @return boolean: True if the value is found, false otherwise&lt;br /&gt;
function table.contains(tbl, value)&lt;br /&gt;
    for _, v in pairs(tbl) do&lt;br /&gt;
        if v == value then return true end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to format error message in red bold text&lt;br /&gt;
-- @param error string: The error message&lt;br /&gt;
-- @return string: Formatted error message&lt;br /&gt;
local function formatError(error)&lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:center;vertical-align:middle;color:red;font-weight:bold;&amp;quot; | %s\n&#039;, error)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Table of genres with their aliases for normalization&lt;br /&gt;
-- Each key is a standard genre name, and the value is a list of aliases or abbreviations&lt;br /&gt;
local genres = {&lt;br /&gt;
    Straight = {&amp;quot;s&amp;quot;, &amp;quot;str&amp;quot;, &amp;quot;str8&amp;quot;},&lt;br /&gt;
    Gay = {&amp;quot;g&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homosexual&amp;quot;},&lt;br /&gt;
    Transexual = {&amp;quot;t&amp;quot;, &amp;quot;trans&amp;quot;, &amp;quot;tra&amp;quot;, &amp;quot;trs&amp;quot;},&lt;br /&gt;
    Bisexual = {&amp;quot;b&amp;quot;, &amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Table of icons for standard genres&lt;br /&gt;
-- Maps standard genre names to their corresponding icon file names&lt;br /&gt;
local iconMap = {&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;StraightIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;GayIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;TranssexualIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;BisexualIconPNG.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Function to normalize genre input to a standard genre name&lt;br /&gt;
-- @param input string: The genre input to normalize&lt;br /&gt;
-- @return string: The standard genre name if matched, otherwise the original input&lt;br /&gt;
-- @return boolean: True if the genre is valid, false otherwise&lt;br /&gt;
local function normalizeGenre(input)&lt;br /&gt;
    if not input or input == &#039;&#039; then&lt;br /&gt;
        return nil, false&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lowerInput = input:lower()  -- Convert input to lowercase for case-insensitive comparison&lt;br /&gt;
    for standard, aliases in pairs(genres) do&lt;br /&gt;
        if lowerInput == standard:lower() or table.contains(aliases, lowerInput) then&lt;br /&gt;
            return standard, true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return input, false  -- Return original input if no match is found, plus flag indicating no match&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format multiple genres with proper icons and formatting&lt;br /&gt;
-- @param genreList table: List of normalized genre names&lt;br /&gt;
-- @return string: Formatted genres with icons and proper separators&lt;br /&gt;
local function formatGenres(genreList)&lt;br /&gt;
    if #genreList == 0 then&lt;br /&gt;
        return &#039;&amp;lt;span style=&amp;quot;color:red;font-weight:bold;&amp;quot;&amp;gt;&#039; .. i18n.errors.noGenreProvided .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Sort genres according to priority order&lt;br /&gt;
    table.sort(genreList, function(a, b) &lt;br /&gt;
        return (GENRE_PRIORITY[a] or 99) &amp;lt; (GENRE_PRIORITY[b] or 99)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    local formattedGenres = {}&lt;br /&gt;
    for _, genre in ipairs(genreList) do&lt;br /&gt;
        if iconMap[genre] then&lt;br /&gt;
            table.insert(formattedGenres, string.format(&#039;[[File:%s|13px|link=]] %s&#039;, iconMap[genre], genre))&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(formattedGenres, genre)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Format with appropriate separators based on the number of genres&lt;br /&gt;
    if #formattedGenres == 1 then&lt;br /&gt;
        return formattedGenres[1]&lt;br /&gt;
    elseif #formattedGenres == 2 then&lt;br /&gt;
        return formattedGenres[1] .. &#039; &amp;amp; &#039; .. formattedGenres[2]&lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;&lt;br /&gt;
        for i = 1, #formattedGenres - 1 do&lt;br /&gt;
            if i == #formattedGenres - 1 then&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039; &amp;amp; &#039;&lt;br /&gt;
            else&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039;, &#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return result .. formattedGenres[#formattedGenres]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format country flag using frame:expandTemplate&lt;br /&gt;
-- @param country string: The country code or name&lt;br /&gt;
-- @param frame table: The current frame object for template expansion&lt;br /&gt;
-- @return string: Formatted country flag or empty string if country is nil or empty&lt;br /&gt;
local function formatCountryFlag(country, frame)&lt;br /&gt;
    if not country or country == &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Use frame:expandTemplate to process the flagicon template&lt;br /&gt;
    local flagTemplate = frame:expandTemplate{&lt;br /&gt;
        title = &#039;flagicon&#039;,&lt;br /&gt;
        args = { country }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return flagTemplate .. &#039; &#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to handle channel information display&lt;br /&gt;
-- @param frame table: The frame object passed from the template&lt;br /&gt;
-- @return string: The formatted table row or an error message&lt;br /&gt;
function p.channel(frame)&lt;br /&gt;
    -- Get template arguments&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:XVideosRedList&#039;})&lt;br /&gt;
    &lt;br /&gt;
    -- Check if channel parameter is provided&lt;br /&gt;
    if not args.channel or args.channel == &#039;&#039; then&lt;br /&gt;
        return formatError(i18n.errors.channelIsEmpty)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get channel data&lt;br /&gt;
    local channel, error = getChannel(args.channel)&lt;br /&gt;
&lt;br /&gt;
    if error then&lt;br /&gt;
        return formatError(error)&lt;br /&gt;
    elseif channel then&lt;br /&gt;
        -- Format channel data, prioritizing template arguments over module data&lt;br /&gt;
        local alias = args.alias or channel.alias or &#039;N/A&#039;&lt;br /&gt;
        &lt;br /&gt;
        -- Fix for empty notes field&lt;br /&gt;
        local notes = args.notes or channel.notes or &#039;N/A&#039;&lt;br /&gt;
        if notes == &amp;quot;&amp;quot; then&lt;br /&gt;
            notes = &#039;N/A&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process multiple genres&lt;br /&gt;
        local genreList = {}&lt;br /&gt;
        local invalidGenres = {}&lt;br /&gt;
        &lt;br /&gt;
        -- Process primary genre&lt;br /&gt;
        local primaryGenre = args.genre or channel.genre or &#039;&#039;&lt;br /&gt;
        local normalizedGenre, isValid = normalizeGenre(primaryGenre)&lt;br /&gt;
        if normalizedGenre then&lt;br /&gt;
            table.insert(genreList, normalizedGenre)&lt;br /&gt;
            if not isValid then&lt;br /&gt;
                table.insert(invalidGenres, primaryGenre)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process additional genres (genre2, genre3, genre4)&lt;br /&gt;
        for i = 2, 4 do&lt;br /&gt;
            local genreArg = args[&#039;genre&#039;..i]&lt;br /&gt;
            if genreArg and genreArg ~= &#039;&#039; then&lt;br /&gt;
                local normalized, valid = normalizeGenre(genreArg)&lt;br /&gt;
                if normalized and not table.contains(genreList, normalized) then&lt;br /&gt;
                    table.insert(genreList, normalized)&lt;br /&gt;
                    if not valid then&lt;br /&gt;
                        table.insert(invalidGenres, genreArg)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Check if at least one valid genre was provided&lt;br /&gt;
        if #genreList == 0 then&lt;br /&gt;
            return formatError(i18n.errors.noGenreProvided)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Format genres with appropriate icons and separators&lt;br /&gt;
        local genreOutput = formatGenres(genreList)&lt;br /&gt;
        &lt;br /&gt;
        -- Log any invalid genres for debugging&lt;br /&gt;
        for _, invalidGenre in ipairs(invalidGenres) do&lt;br /&gt;
            mw.log(string.format(i18n.errors.invalidGenre, invalidGenre))&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Handle channel URL and country flag&lt;br /&gt;
        local channelUrl = &amp;quot;&amp;quot;&lt;br /&gt;
        local channelDisplay = channel.name&lt;br /&gt;
        local countryFlag = formatCountryFlag(channel.country, frame)&lt;br /&gt;
        &lt;br /&gt;
        if channel.channel and channel.channel ~= &#039;&#039; then&lt;br /&gt;
            channelUrl = BASE_URL .. channel.channel .. URL_SUFFIX&lt;br /&gt;
            channelDisplay = string.format(&#039;%s[%s %s]&#039;, countryFlag, channelUrl, channel.name)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Format row with gathered data&lt;br /&gt;
        local result = string.format(&lt;br /&gt;
            &#039;|-\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;display:none;&amp;quot; |\n&#039;,&lt;br /&gt;
            channelDisplay,&lt;br /&gt;
            genreOutput,&lt;br /&gt;
            alias,&lt;br /&gt;
            notes&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
        -- Add categories based on namespace and genres&lt;br /&gt;
        local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
        if ns == 0 then&lt;br /&gt;
            -- Add default category for all entries&lt;br /&gt;
            result = result .. &#039;[[Category:&#039; .. DEFAULT_CATEGORY .. &#039;]]&#039;&lt;br /&gt;
            &lt;br /&gt;
            -- Add genre-specific categories&lt;br /&gt;
            for _, genre in ipairs(genreList) do&lt;br /&gt;
                if GENRE_CATEGORIES[genre] then&lt;br /&gt;
                    result = result .. &#039;[[Category:&#039; .. GENRE_CATEGORIES[genre] .. &#039;]]&#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            -- Add tracking category for main namespace&lt;br /&gt;
            result = result .. &#039;[[Category:Articles using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 2 then&lt;br /&gt;
            result = result .. &#039;[[Category:User pages using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 118 then&lt;br /&gt;
            result = result .. &#039;[[Category:Draft pages using XVideosRedList]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return formatError(string.format(i18n.errors.channelNotFound, args.channel))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to find and retrieve channel data from appropriate module&lt;br /&gt;
-- @param name string: The name of the channel to find&lt;br /&gt;
-- @return table|string: The channel data table or an error message&lt;br /&gt;
function getChannel(name)&lt;br /&gt;
    if not name then return nil, i18n.errors.channelIsEmpty end&lt;br /&gt;
    &lt;br /&gt;
    local modulesToTry = {}&lt;br /&gt;
    local firstLetter = name:sub(1, 1):upper()&lt;br /&gt;
    table.insert(modulesToTry, firstLetter)&lt;br /&gt;
    &lt;br /&gt;
    -- Handle &amp;quot;The&amp;quot; prefix&lt;br /&gt;
    local nameWithoutThe = name:lower():gsub(&amp;quot;^the%s*&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if nameWithoutThe ~= name:lower() then&lt;br /&gt;
        local theFirstLetter = nameWithoutThe:sub(1, 1):upper()&lt;br /&gt;
        if theFirstLetter ~= firstLetter then&lt;br /&gt;
            table.insert(modulesToTry, theFirstLetter)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, module in ipairs(modulesToTry) do&lt;br /&gt;
        local success, channelModule = pcall(require, &#039;Module:XVideosRedList/&#039; .. module)&lt;br /&gt;
        &lt;br /&gt;
        if success then&lt;br /&gt;
            if type(channelModule) == &amp;quot;table&amp;quot; and type(channelModule.channels) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                local matchedChannels = {}&lt;br /&gt;
                &lt;br /&gt;
                -- First try direct match or aliases&lt;br /&gt;
                for _, channel in pairs(channelModule.channels) do&lt;br /&gt;
                    if channel.name:lower() == name:lower() or &lt;br /&gt;
                       (channel.aliases and table.contains(channel.aliases, name:lower())) then&lt;br /&gt;
                        table.insert(matchedChannels, channel)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If found matches, return results&lt;br /&gt;
                if #matchedChannels &amp;gt; 1 then&lt;br /&gt;
                    return nil, string.format(i18n.errors.duplicateChannels, name)&lt;br /&gt;
                elseif #matchedChannels == 1 then&lt;br /&gt;
                    return matchedChannels[1]&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If no direct matches found, try redirects&lt;br /&gt;
                if channelModule.redirects and channelModule.redirects[name:lower()] then&lt;br /&gt;
                    return getChannel(channelModule.redirects[name:lower()])&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                mw.log(string.format(i18n.errors.invalidModuleStructure, module))&lt;br /&gt;
                return nil, string.format(i18n.errors.invalidModuleStructure, module)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log(string.format(i18n.errors.moduleLoadError, module))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil, string.format(i18n.errors.channelNotFound, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to generate the table header with XVideos RED logo link&lt;br /&gt;
-- @return string: The formatted table header&lt;br /&gt;
function p.tableHeader()&lt;br /&gt;
    local headerLink = string.format(&#039;[[File:Xvideosredlogo.svg|24px|link=]] [%s XVideos RED]&#039;, HEADER_URL)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;! colspan=&amp;quot;5&amp;quot; | %s\n|-\n!style=&amp;quot;width: 30%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Studio name\n!style=&amp;quot;width: 20%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Genre\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Alias\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Notes\n!style=&amp;quot;display:none;&amp;quot; |\n&#039;, headerLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2962</id>
		<title>Module:XVideosRedList/L</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2962"/>
		<updated>2025-03-15T00:40:13Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Channel data for names starting with &#039;L&#039;&lt;br /&gt;
local L = {}&lt;br /&gt;
&lt;br /&gt;
-- Channel data&lt;br /&gt;
L.channels = {&lt;br /&gt;
    [&amp;quot;Lipe Louco&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Lipe Louco&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;lipelouco&amp;quot;, &amp;quot;lipe louco&amp;quot;, &amp;quot;lipe-louco&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;lipiroco&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Straight&amp;quot;,&lt;br /&gt;
        country = &amp;quot;BRA&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    [&amp;quot;Luana Prado&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Luana Prado&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;luanaprado&amp;quot;, &amp;quot;luana prado&amp;quot;, &amp;quot;luana-prado&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;luana_prado_official&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Trans&amp;quot;,&lt;br /&gt;
        country = &amp;quot;BRA&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return L&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2961</id>
		<title>Module:XVideosRedList/L</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2961"/>
		<updated>2025-03-15T00:39:57Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Channel data for names starting with &#039;L&#039;&lt;br /&gt;
local L = {}&lt;br /&gt;
&lt;br /&gt;
-- Channel data&lt;br /&gt;
L.channels = {&lt;br /&gt;
    [&amp;quot;Lipe Louco&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Lipe Louco&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;lipelouco&amp;quot;, &amp;quot;lipe louco&amp;quot;, &amp;quot;lipe-louco&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;lipiroco&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Straight&amp;quot;,&lt;br /&gt;
		country = &amp;quot;BRA&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    [&amp;quot;Luana Prado&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Luana Prado&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;luanaprado&amp;quot;, &amp;quot;luana prado&amp;quot;, &amp;quot;luana-prado&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;luana_prado_official&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Trans&amp;quot;,&lt;br /&gt;
		country = &amp;quot;BRA&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return L&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2960</id>
		<title>Module:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2960"/>
		<updated>2025-03-15T00:39:06Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module handles the display of XVideos RED channel information&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load the i18n submodule for text strings and error messages&lt;br /&gt;
local i18n = require(&#039;Module:XVideosRedList/i18n&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Base URL for XVideos RED&lt;br /&gt;
local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot;&lt;br /&gt;
-- Suffix to append to all XVideos RED URLs&lt;br /&gt;
local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35#_tabRed&amp;quot;&lt;br /&gt;
-- Main header URL for title link&lt;br /&gt;
local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Default category for all channels&lt;br /&gt;
local DEFAULT_CATEGORY = &amp;quot;XVideos RED models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Genre categories mapping&lt;br /&gt;
local GENRE_CATEGORIES = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;XVideos RED (gay) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;XVideos RED (heterosexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;XVideos RED (bisexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;XVideos RED (transsexual) models&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Genre display order priority&lt;br /&gt;
local GENRE_PRIORITY = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = 1,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = 2,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = 3,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = 4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a table contains a specific value&lt;br /&gt;
-- @param tbl table: The table to search&lt;br /&gt;
-- @param value any: The value to find&lt;br /&gt;
-- @return boolean: True if the value is found, false otherwise&lt;br /&gt;
function table.contains(tbl, value)&lt;br /&gt;
    for _, v in pairs(tbl) do&lt;br /&gt;
        if v == value then return true end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to format error message in red bold text&lt;br /&gt;
-- @param error string: The error message&lt;br /&gt;
-- @return string: Formatted error message&lt;br /&gt;
local function formatError(error)&lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:center;vertical-align:middle;color:red;font-weight:bold;&amp;quot; | %s\n&#039;, error)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Table of genres with their aliases for normalization&lt;br /&gt;
-- Each key is a standard genre name, and the value is a list of aliases or abbreviations&lt;br /&gt;
local genres = {&lt;br /&gt;
    Straight = {&amp;quot;s&amp;quot;, &amp;quot;str&amp;quot;, &amp;quot;str8&amp;quot;},&lt;br /&gt;
    Gay = {&amp;quot;g&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homosexual&amp;quot;},&lt;br /&gt;
    Transexual = {&amp;quot;t&amp;quot;, &amp;quot;trans&amp;quot;, &amp;quot;tra&amp;quot;, &amp;quot;trs&amp;quot;},&lt;br /&gt;
    Bisexual = {&amp;quot;b&amp;quot;, &amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Table of icons for standard genres&lt;br /&gt;
-- Maps standard genre names to their corresponding icon file names&lt;br /&gt;
local iconMap = {&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;StraightIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;GayIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;TranssexualIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;BisexualIconPNG.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Function to normalize genre input to a standard genre name&lt;br /&gt;
-- @param input string: The genre input to normalize&lt;br /&gt;
-- @return string: The standard genre name if matched, otherwise the original input&lt;br /&gt;
-- @return boolean: True if the genre is valid, false otherwise&lt;br /&gt;
local function normalizeGenre(input)&lt;br /&gt;
    if not input or input == &#039;&#039; then&lt;br /&gt;
        return nil, false&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lowerInput = input:lower()  -- Convert input to lowercase for case-insensitive comparison&lt;br /&gt;
    for standard, aliases in pairs(genres) do&lt;br /&gt;
        if lowerInput == standard:lower() or table.contains(aliases, lowerInput) then&lt;br /&gt;
            return standard, true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return input, false  -- Return original input if no match is found, plus flag indicating no match&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format multiple genres with proper icons and formatting&lt;br /&gt;
-- @param genreList table: List of normalized genre names&lt;br /&gt;
-- @return string: Formatted genres with icons and proper separators&lt;br /&gt;
local function formatGenres(genreList)&lt;br /&gt;
    if #genreList == 0 then&lt;br /&gt;
        return &#039;&amp;lt;span style=&amp;quot;color:red;font-weight:bold;&amp;quot;&amp;gt;&#039; .. i18n.errors.noGenreProvided .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Sort genres according to priority order&lt;br /&gt;
    table.sort(genreList, function(a, b) &lt;br /&gt;
        return (GENRE_PRIORITY[a] or 99) &amp;lt; (GENRE_PRIORITY[b] or 99)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    local formattedGenres = {}&lt;br /&gt;
    for _, genre in ipairs(genreList) do&lt;br /&gt;
        if iconMap[genre] then&lt;br /&gt;
            table.insert(formattedGenres, string.format(&#039;[[File:%s|13px|link=]] %s&#039;, iconMap[genre], genre))&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(formattedGenres, genre)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Format with appropriate separators based on the number of genres&lt;br /&gt;
    if #formattedGenres == 1 then&lt;br /&gt;
        return formattedGenres[1]&lt;br /&gt;
    elseif #formattedGenres == 2 then&lt;br /&gt;
        return formattedGenres[1] .. &#039; &amp;amp; &#039; .. formattedGenres[2]&lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;&lt;br /&gt;
        for i = 1, #formattedGenres - 1 do&lt;br /&gt;
            if i == #formattedGenres - 1 then&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039; &amp;amp; &#039;&lt;br /&gt;
            else&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039;, &#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return result .. formattedGenres[#formattedGenres]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format country flag using flagicon template&lt;br /&gt;
-- @param country string: The country code or name&lt;br /&gt;
-- @return string: Formatted country flag or empty string if country is nil or empty&lt;br /&gt;
local function formatCountryFlag(country)&lt;br /&gt;
    if not country or country == &amp;quot;&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;{{flagicon|%s}} &#039;, country)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to handle channel information display&lt;br /&gt;
-- @param frame table: The frame object passed from the template&lt;br /&gt;
-- @return string: The formatted table row or an error message&lt;br /&gt;
function p.channel(frame)&lt;br /&gt;
    -- Get template arguments&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:XVideosRedList&#039;})&lt;br /&gt;
    &lt;br /&gt;
    -- Check if channel parameter is provided&lt;br /&gt;
    if not args.channel or args.channel == &#039;&#039; then&lt;br /&gt;
        return formatError(i18n.errors.channelIsEmpty)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get channel data&lt;br /&gt;
    local channel, error = getChannel(args.channel)&lt;br /&gt;
&lt;br /&gt;
    if error then&lt;br /&gt;
        return formatError(error)&lt;br /&gt;
    elseif channel then&lt;br /&gt;
        -- Format channel data, prioritizing template arguments over module data&lt;br /&gt;
        local alias = args.alias or channel.alias or &#039;N/A&#039;&lt;br /&gt;
        &lt;br /&gt;
        -- Fix for empty notes field&lt;br /&gt;
        local notes = args.notes or channel.notes or &#039;N/A&#039;&lt;br /&gt;
        if notes == &amp;quot;&amp;quot; then&lt;br /&gt;
            notes = &#039;N/A&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process multiple genres&lt;br /&gt;
        local genreList = {}&lt;br /&gt;
        local invalidGenres = {}&lt;br /&gt;
        &lt;br /&gt;
        -- Process primary genre&lt;br /&gt;
        local primaryGenre = args.genre or channel.genre or &#039;&#039;&lt;br /&gt;
        local normalizedGenre, isValid = normalizeGenre(primaryGenre)&lt;br /&gt;
        if normalizedGenre then&lt;br /&gt;
            table.insert(genreList, normalizedGenre)&lt;br /&gt;
            if not isValid then&lt;br /&gt;
                table.insert(invalidGenres, primaryGenre)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process additional genres (genre2, genre3, genre4)&lt;br /&gt;
        for i = 2, 4 do&lt;br /&gt;
            local genreArg = args[&#039;genre&#039;..i]&lt;br /&gt;
            if genreArg and genreArg ~= &#039;&#039; then&lt;br /&gt;
                local normalized, valid = normalizeGenre(genreArg)&lt;br /&gt;
                if normalized and not table.contains(genreList, normalized) then&lt;br /&gt;
                    table.insert(genreList, normalized)&lt;br /&gt;
                    if not valid then&lt;br /&gt;
                        table.insert(invalidGenres, genreArg)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Check if at least one valid genre was provided&lt;br /&gt;
        if #genreList == 0 then&lt;br /&gt;
            return formatError(i18n.errors.noGenreProvided)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Format genres with appropriate icons and separators&lt;br /&gt;
        local genreOutput = formatGenres(genreList)&lt;br /&gt;
        &lt;br /&gt;
        -- Log any invalid genres for debugging&lt;br /&gt;
        for _, invalidGenre in ipairs(invalidGenres) do&lt;br /&gt;
            mw.log(string.format(i18n.errors.invalidGenre, invalidGenre))&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Handle channel URL and country flag&lt;br /&gt;
        local channelUrl = &amp;quot;&amp;quot;&lt;br /&gt;
        local channelDisplay = channel.name&lt;br /&gt;
        local countryFlag = formatCountryFlag(channel.country)&lt;br /&gt;
        &lt;br /&gt;
        if channel.channel and channel.channel ~= &#039;&#039; then&lt;br /&gt;
            channelUrl = BASE_URL .. channel.channel .. URL_SUFFIX&lt;br /&gt;
            channelDisplay = string.format(&#039;%s[%s %s]&#039;, countryFlag, channelUrl, channel.name)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Format row with gathered data&lt;br /&gt;
        local result = string.format(&lt;br /&gt;
            &#039;|-\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;display:none;&amp;quot; |\n&#039;,&lt;br /&gt;
            channelDisplay,&lt;br /&gt;
            genreOutput,&lt;br /&gt;
            alias,&lt;br /&gt;
            notes&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
        -- Add categories based on namespace and genres&lt;br /&gt;
        local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
        if ns == 0 then&lt;br /&gt;
            -- Add default category for all entries&lt;br /&gt;
            result = result .. &#039;[[Category:&#039; .. DEFAULT_CATEGORY .. &#039;]]&#039;&lt;br /&gt;
            &lt;br /&gt;
            -- Add genre-specific categories&lt;br /&gt;
            for _, genre in ipairs(genreList) do&lt;br /&gt;
                if GENRE_CATEGORIES[genre] then&lt;br /&gt;
                    result = result .. &#039;[[Category:&#039; .. GENRE_CATEGORIES[genre] .. &#039;]]&#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            -- Add tracking category for main namespace&lt;br /&gt;
            result = result .. &#039;[[Category:Articles using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 2 then&lt;br /&gt;
            result = result .. &#039;[[Category:User pages using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 118 then&lt;br /&gt;
            result = result .. &#039;[[Category:Draft pages using XVideosRedList]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return formatError(string.format(i18n.errors.channelNotFound, args.channel))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to find and retrieve channel data from appropriate module&lt;br /&gt;
-- @param name string: The name of the channel to find&lt;br /&gt;
-- @return table|string: The channel data table or an error message&lt;br /&gt;
function getChannel(name)&lt;br /&gt;
    if not name then return nil, i18n.errors.channelIsEmpty end&lt;br /&gt;
    &lt;br /&gt;
    local modulesToTry = {}&lt;br /&gt;
    local firstLetter = name:sub(1, 1):upper()&lt;br /&gt;
    table.insert(modulesToTry, firstLetter)&lt;br /&gt;
    &lt;br /&gt;
    -- Handle &amp;quot;The&amp;quot; prefix&lt;br /&gt;
    local nameWithoutThe = name:lower():gsub(&amp;quot;^the%s*&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if nameWithoutThe ~= name:lower() then&lt;br /&gt;
        local theFirstLetter = nameWithoutThe:sub(1, 1):upper()&lt;br /&gt;
        if theFirstLetter ~= firstLetter then&lt;br /&gt;
            table.insert(modulesToTry, theFirstLetter)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, module in ipairs(modulesToTry) do&lt;br /&gt;
        local success, channelModule = pcall(require, &#039;Module:XVideosRedList/&#039; .. module)&lt;br /&gt;
        &lt;br /&gt;
        if success then&lt;br /&gt;
            if type(channelModule) == &amp;quot;table&amp;quot; and type(channelModule.channels) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                local matchedChannels = {}&lt;br /&gt;
                &lt;br /&gt;
                -- First try direct match or aliases&lt;br /&gt;
                for _, channel in pairs(channelModule.channels) do&lt;br /&gt;
                    if channel.name:lower() == name:lower() or &lt;br /&gt;
                       (channel.aliases and table.contains(channel.aliases, name:lower())) then&lt;br /&gt;
                        table.insert(matchedChannels, channel)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If found matches, return results&lt;br /&gt;
                if #matchedChannels &amp;gt; 1 then&lt;br /&gt;
                    return nil, string.format(i18n.errors.duplicateChannels, name)&lt;br /&gt;
                elseif #matchedChannels == 1 then&lt;br /&gt;
                    return matchedChannels[1]&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If no direct matches found, try redirects&lt;br /&gt;
                if channelModule.redirects and channelModule.redirects[name:lower()] then&lt;br /&gt;
                    return getChannel(channelModule.redirects[name:lower()])&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                mw.log(string.format(i18n.errors.invalidModuleStructure, module))&lt;br /&gt;
                return nil, string.format(i18n.errors.invalidModuleStructure, module)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log(string.format(i18n.errors.moduleLoadError, module))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil, string.format(i18n.errors.channelNotFound, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to generate the table header with XVideos RED logo link&lt;br /&gt;
-- @return string: The formatted table header&lt;br /&gt;
function p.tableHeader()&lt;br /&gt;
    local headerLink = string.format(&#039;[[File:Xvideosredlogo.svg|24px|link=]] [%s XVideos RED]&#039;, HEADER_URL)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;! colspan=&amp;quot;5&amp;quot; | %s\n|-\n!style=&amp;quot;width: 30%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Studio name\n!style=&amp;quot;width: 20%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Genre\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Alias\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Notes\n!style=&amp;quot;display:none;&amp;quot; |\n&#039;, headerLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:BisexualIconPNG.png&amp;diff=2959</id>
		<title>File:BisexualIconPNG.png</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:BisexualIconPNG.png&amp;diff=2959"/>
		<updated>2025-03-15T00:23:25Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2958</id>
		<title>Module:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2958"/>
		<updated>2025-03-15T00:20:59Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module handles the display of XVideos RED channel information&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load the i18n submodule for text strings and error messages&lt;br /&gt;
local i18n = require(&#039;Module:XVideosRedList/i18n&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Base URL for XVideos RED&lt;br /&gt;
local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot;&lt;br /&gt;
-- Suffix to append to all XVideos RED URLs&lt;br /&gt;
local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35#_tabRed&amp;quot;&lt;br /&gt;
-- Main header URL for title link&lt;br /&gt;
local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Default category for all channels&lt;br /&gt;
local DEFAULT_CATEGORY = &amp;quot;XVideos RED models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Genre categories mapping&lt;br /&gt;
local GENRE_CATEGORIES = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;XVideos RED (gay) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;XVideos RED (heterosexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;XVideos RED (bisexual) models&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;XVideos RED (transsexual) models&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Genre display order priority&lt;br /&gt;
local GENRE_PRIORITY = {&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = 1,&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = 2,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = 3,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = 4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a table contains a specific value&lt;br /&gt;
-- @param tbl table: The table to search&lt;br /&gt;
-- @param value any: The value to find&lt;br /&gt;
-- @return boolean: True if the value is found, false otherwise&lt;br /&gt;
function table.contains(tbl, value)&lt;br /&gt;
    for _, v in pairs(tbl) do&lt;br /&gt;
        if v == value then return true end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to format error message in red bold text&lt;br /&gt;
-- @param error string: The error message&lt;br /&gt;
-- @return string: Formatted error message&lt;br /&gt;
local function formatError(error)&lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:center;vertical-align:middle;color:red;font-weight:bold;&amp;quot; | %s\n&#039;, error)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Table of genres with their aliases for normalization&lt;br /&gt;
-- Each key is a standard genre name, and the value is a list of aliases or abbreviations&lt;br /&gt;
local genres = {&lt;br /&gt;
    Straight = {&amp;quot;s&amp;quot;, &amp;quot;str&amp;quot;, &amp;quot;str8&amp;quot;},&lt;br /&gt;
    Gay = {&amp;quot;g&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homosexual&amp;quot;},&lt;br /&gt;
    Transexual = {&amp;quot;t&amp;quot;, &amp;quot;trans&amp;quot;, &amp;quot;tra&amp;quot;, &amp;quot;trs&amp;quot;},&lt;br /&gt;
    Bisexual = {&amp;quot;b&amp;quot;, &amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Table of icons for standard genres&lt;br /&gt;
-- Maps standard genre names to their corresponding icon file names&lt;br /&gt;
local iconMap = {&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;StraightIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;GayIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;TranssexualIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;BisexualIconPNG.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Function to normalize genre input to a standard genre name&lt;br /&gt;
-- @param input string: The genre input to normalize&lt;br /&gt;
-- @return string: The standard genre name if matched, otherwise the original input&lt;br /&gt;
-- @return boolean: True if the genre is valid, false otherwise&lt;br /&gt;
local function normalizeGenre(input)&lt;br /&gt;
    if not input or input == &#039;&#039; then&lt;br /&gt;
        return nil, false&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lowerInput = input:lower()  -- Convert input to lowercase for case-insensitive comparison&lt;br /&gt;
    for standard, aliases in pairs(genres) do&lt;br /&gt;
        if lowerInput == standard:lower() or table.contains(aliases, lowerInput) then&lt;br /&gt;
            return standard, true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return input, false  -- Return original input if no match is found, plus flag indicating no match&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to format multiple genres with proper icons and formatting&lt;br /&gt;
-- @param genreList table: List of normalized genre names&lt;br /&gt;
-- @return string: Formatted genres with icons and proper separators&lt;br /&gt;
local function formatGenres(genreList)&lt;br /&gt;
    if #genreList == 0 then&lt;br /&gt;
        return &#039;&amp;lt;span style=&amp;quot;color:red;font-weight:bold;&amp;quot;&amp;gt;&#039; .. i18n.errors.noGenreProvided .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Sort genres according to priority order&lt;br /&gt;
    table.sort(genreList, function(a, b) &lt;br /&gt;
        return (GENRE_PRIORITY[a] or 99) &amp;lt; (GENRE_PRIORITY[b] or 99)&lt;br /&gt;
    end)&lt;br /&gt;
    &lt;br /&gt;
    local formattedGenres = {}&lt;br /&gt;
    for _, genre in ipairs(genreList) do&lt;br /&gt;
        if iconMap[genre] then&lt;br /&gt;
            table.insert(formattedGenres, string.format(&#039;[[File:%s|13px|link=]] %s&#039;, iconMap[genre], genre))&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(formattedGenres, genre)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Format with appropriate separators based on the number of genres&lt;br /&gt;
    if #formattedGenres == 1 then&lt;br /&gt;
        return formattedGenres[1]&lt;br /&gt;
    elseif #formattedGenres == 2 then&lt;br /&gt;
        return formattedGenres[1] .. &#039; &amp;amp; &#039; .. formattedGenres[2]&lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;&lt;br /&gt;
        for i = 1, #formattedGenres - 1 do&lt;br /&gt;
            if i == #formattedGenres - 1 then&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039; &amp;amp; &#039;&lt;br /&gt;
            else&lt;br /&gt;
                result = result .. formattedGenres[i] .. &#039;, &#039;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return result .. formattedGenres[#formattedGenres]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to handle channel information display&lt;br /&gt;
-- @param frame table: The frame object passed from the template&lt;br /&gt;
-- @return string: The formatted table row or an error message&lt;br /&gt;
function p.channel(frame)&lt;br /&gt;
    -- Get template arguments&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:XVideosRedList&#039;})&lt;br /&gt;
    &lt;br /&gt;
    -- Check if channel parameter is provided&lt;br /&gt;
    if not args.channel or args.channel == &#039;&#039; then&lt;br /&gt;
        return formatError(i18n.errors.channelIsEmpty)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get channel data&lt;br /&gt;
    local channel, error = getChannel(args.channel)&lt;br /&gt;
&lt;br /&gt;
    if error then&lt;br /&gt;
        return formatError(error)&lt;br /&gt;
    elseif channel then&lt;br /&gt;
        -- Format channel data, prioritizing template arguments over module data&lt;br /&gt;
        local alias = args.alias or channel.alias or &#039;N/A&#039;&lt;br /&gt;
        &lt;br /&gt;
        -- Fix for empty notes field&lt;br /&gt;
        local notes = args.notes or channel.notes or &#039;N/A&#039;&lt;br /&gt;
        if notes == &amp;quot;&amp;quot; then&lt;br /&gt;
            notes = &#039;N/A&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process multiple genres&lt;br /&gt;
        local genreList = {}&lt;br /&gt;
        local invalidGenres = {}&lt;br /&gt;
        &lt;br /&gt;
        -- Process primary genre&lt;br /&gt;
        local primaryGenre = args.genre or channel.genre or &#039;&#039;&lt;br /&gt;
        local normalizedGenre, isValid = normalizeGenre(primaryGenre)&lt;br /&gt;
        if normalizedGenre then&lt;br /&gt;
            table.insert(genreList, normalizedGenre)&lt;br /&gt;
            if not isValid then&lt;br /&gt;
                table.insert(invalidGenres, primaryGenre)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Process additional genres (genre2, genre3, genre4)&lt;br /&gt;
        for i = 2, 4 do&lt;br /&gt;
            local genreArg = args[&#039;genre&#039;..i]&lt;br /&gt;
            if genreArg and genreArg ~= &#039;&#039; then&lt;br /&gt;
                local normalized, valid = normalizeGenre(genreArg)&lt;br /&gt;
                if normalized and not table.contains(genreList, normalized) then&lt;br /&gt;
                    table.insert(genreList, normalized)&lt;br /&gt;
                    if not valid then&lt;br /&gt;
                        table.insert(invalidGenres, genreArg)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Check if at least one valid genre was provided&lt;br /&gt;
        if #genreList == 0 then&lt;br /&gt;
            return formatError(i18n.errors.noGenreProvided)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Format genres with appropriate icons and separators&lt;br /&gt;
        local genreOutput = formatGenres(genreList)&lt;br /&gt;
        &lt;br /&gt;
        -- Log any invalid genres for debugging&lt;br /&gt;
        for _, invalidGenre in ipairs(invalidGenres) do&lt;br /&gt;
            mw.log(string.format(i18n.errors.invalidGenre, invalidGenre))&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Handle channel URL&lt;br /&gt;
        local channelUrl = &amp;quot;&amp;quot;&lt;br /&gt;
        local channelDisplay = channel.name&lt;br /&gt;
        &lt;br /&gt;
        if channel.channel and channel.channel ~= &#039;&#039; then&lt;br /&gt;
            channelUrl = BASE_URL .. channel.channel .. URL_SUFFIX&lt;br /&gt;
            channelDisplay = string.format(&#039;[%s %s]&#039;, channelUrl, channel.name)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Format row with gathered data&lt;br /&gt;
        local result = string.format(&lt;br /&gt;
            &#039;|-\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;display:none;&amp;quot; |\n&#039;,&lt;br /&gt;
            channelDisplay,&lt;br /&gt;
            genreOutput,&lt;br /&gt;
            alias,&lt;br /&gt;
            notes&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
        -- Add categories based on namespace and genres&lt;br /&gt;
        local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
        if ns == 0 then&lt;br /&gt;
            -- Add default category for all entries&lt;br /&gt;
            result = result .. &#039;[[Category:&#039; .. DEFAULT_CATEGORY .. &#039;]]&#039;&lt;br /&gt;
            &lt;br /&gt;
            -- Add genre-specific categories&lt;br /&gt;
            for _, genre in ipairs(genreList) do&lt;br /&gt;
                if GENRE_CATEGORIES[genre] then&lt;br /&gt;
                    result = result .. &#039;[[Category:&#039; .. GENRE_CATEGORIES[genre] .. &#039;]]&#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            -- Add tracking category for main namespace&lt;br /&gt;
            result = result .. &#039;[[Category:Articles using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 2 then&lt;br /&gt;
            result = result .. &#039;[[Category:User pages using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 118 then&lt;br /&gt;
            result = result .. &#039;[[Category:Draft pages using XVideosRedList]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return formatError(string.format(i18n.errors.channelNotFound, args.channel))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to find and retrieve channel data from appropriate module&lt;br /&gt;
-- @param name string: The name of the channel to find&lt;br /&gt;
-- @return table|string: The channel data table or an error message&lt;br /&gt;
function getChannel(name)&lt;br /&gt;
    if not name then return nil, i18n.errors.channelIsEmpty end&lt;br /&gt;
    &lt;br /&gt;
    local modulesToTry = {}&lt;br /&gt;
    local firstLetter = name:sub(1, 1):upper()&lt;br /&gt;
    table.insert(modulesToTry, firstLetter)&lt;br /&gt;
    &lt;br /&gt;
    -- Handle &amp;quot;The&amp;quot; prefix&lt;br /&gt;
    local nameWithoutThe = name:lower():gsub(&amp;quot;^the%s*&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if nameWithoutThe ~= name:lower() then&lt;br /&gt;
        local theFirstLetter = nameWithoutThe:sub(1, 1):upper()&lt;br /&gt;
        if theFirstLetter ~= firstLetter then&lt;br /&gt;
            table.insert(modulesToTry, theFirstLetter)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, module in ipairs(modulesToTry) do&lt;br /&gt;
        local success, channelModule = pcall(require, &#039;Module:XVideosRedList/&#039; .. module)&lt;br /&gt;
        &lt;br /&gt;
        if success then&lt;br /&gt;
            if type(channelModule) == &amp;quot;table&amp;quot; and type(channelModule.channels) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                local matchedChannels = {}&lt;br /&gt;
                &lt;br /&gt;
                -- First try direct match or aliases&lt;br /&gt;
                for _, channel in pairs(channelModule.channels) do&lt;br /&gt;
                    if channel.name:lower() == name:lower() or &lt;br /&gt;
                       (channel.aliases and table.contains(channel.aliases, name:lower())) then&lt;br /&gt;
                        table.insert(matchedChannels, channel)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If found matches, return results&lt;br /&gt;
                if #matchedChannels &amp;gt; 1 then&lt;br /&gt;
                    return nil, string.format(i18n.errors.duplicateChannels, name)&lt;br /&gt;
                elseif #matchedChannels == 1 then&lt;br /&gt;
                    return matchedChannels[1]&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If no direct matches found, try redirects&lt;br /&gt;
                if channelModule.redirects and channelModule.redirects[name:lower()] then&lt;br /&gt;
                    return getChannel(channelModule.redirects[name:lower()])&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                mw.log(string.format(i18n.errors.invalidModuleStructure, module))&lt;br /&gt;
                return nil, string.format(i18n.errors.invalidModuleStructure, module)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log(string.format(i18n.errors.moduleLoadError, module))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil, string.format(i18n.errors.channelNotFound, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to generate the table header with XVideos RED logo link&lt;br /&gt;
-- @return string: The formatted table header&lt;br /&gt;
function p.tableHeader()&lt;br /&gt;
    local headerLink = string.format(&#039;[[File:Xvideosredlogo.svg|24px|link=]] [%s XVideos RED]&#039;, HEADER_URL)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;! colspan=&amp;quot;5&amp;quot; | %s\n|-\n!style=&amp;quot;width: 30%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Studio name\n!style=&amp;quot;width: 20%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Genre\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Alias\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Notes\n!style=&amp;quot;display:none;&amp;quot; |\n&#039;, headerLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:Xvideosredlogo.svg&amp;diff=2957</id>
		<title>File:Xvideosredlogo.svg</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:Xvideosredlogo.svg&amp;diff=2957"/>
		<updated>2025-03-14T23:33:29Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Icon image}}&lt;br /&gt;
|date=N/A&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Icons]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:StraightIconPNG.png&amp;diff=2956</id>
		<title>File:StraightIconPNG.png</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:StraightIconPNG.png&amp;diff=2956"/>
		<updated>2025-03-14T23:33:29Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Icon image}}&lt;br /&gt;
|date=N/A&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Icons]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:TranssexualIconPNG.png&amp;diff=2955</id>
		<title>File:TranssexualIconPNG.png</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:TranssexualIconPNG.png&amp;diff=2955"/>
		<updated>2025-03-14T23:33:29Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Icon image}}&lt;br /&gt;
|date=N/A&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Icons]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:GayIconPNG.png&amp;diff=2954</id>
		<title>File:GayIconPNG.png</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:GayIconPNG.png&amp;diff=2954"/>
		<updated>2025-03-14T23:33:29Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Icon image}}&lt;br /&gt;
|date=N/A&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{licensing|generic}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Icons]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Eduardo_Lima&amp;diff=2953</id>
		<title>Eduardo Lima</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Eduardo_Lima&amp;diff=2953"/>
		<updated>2025-03-14T23:30:12Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Biobox new&lt;br /&gt;
|     natural butt = Y&lt;br /&gt;
|           tattoo = Y&lt;br /&gt;
|     masturbation = Y&lt;br /&gt;
|         close-up = Y&lt;br /&gt;
|        solodildo = &lt;br /&gt;
|             feet = &lt;br /&gt;
|      solopissing = &lt;br /&gt;
| soloassfingering = &lt;br /&gt;
|           gaping = &lt;br /&gt;
|   muscle-flexing = Y&lt;br /&gt;
|bodybuildingposing = Y&lt;br /&gt;
|         swimwear = &lt;br /&gt;
|          massage = &lt;br /&gt;
|        wrestling =  &lt;br /&gt;
|     oilwrestling = &lt;br /&gt;
&lt;br /&gt;
|        gaykissing= Y&lt;br /&gt;
|       gayblowjob = Y&lt;br /&gt;
|         bareback = Y&lt;br /&gt;
|          gayanal = Y&lt;br /&gt;
|       gayrimming = Y&lt;br /&gt;
|           facial = Y&lt;br /&gt;
|       cum eating = Y&lt;br /&gt;
|      gaycreampie = Y&lt;br /&gt;
| gay cum swapping = &lt;br /&gt;
|            gaydp = &lt;br /&gt;
|              top = Y&lt;br /&gt;
|      topbareback = Y&lt;br /&gt;
|           bottom = &lt;br /&gt;
|   bottombareback = Y&lt;br /&gt;
|      topcreampie = Y&lt;br /&gt;
|   bottomcreampie = &lt;br /&gt;
&lt;br /&gt;
|          blowjob = Y&lt;br /&gt;
|         hardcore = Y&lt;br /&gt;
|             anal = Y&lt;br /&gt;
|         strap-on = &lt;br /&gt;
|      watersports = &lt;br /&gt;
|         creampie = Y&lt;br /&gt;
&lt;br /&gt;
|       gaybondage = &lt;br /&gt;
|         spanking = &lt;br /&gt;
|             cfnm = &lt;br /&gt;
|       suspension = &lt;br /&gt;
|          torture = &lt;br /&gt;
|              wax = &lt;br /&gt;
|    tickletorture = &lt;br /&gt;
|       domination = &lt;br /&gt;
|       submission = &lt;br /&gt;
|       gayfisting = &lt;br /&gt;
|cum swapping female-male = &lt;br /&gt;
&lt;br /&gt;
|           rimjob = Y&lt;br /&gt;
|straightinterracial =Y&lt;br /&gt;
|          fisting = &lt;br /&gt;
|          bukkake =&lt;br /&gt;
&lt;br /&gt;
|       gaybukkake = &lt;br /&gt;
|   gaywatersports = &lt;br /&gt;
|    gayfootfetish = &lt;br /&gt;
|    gaydeepthroat = Y&lt;br /&gt;
|   gayinterracial = Y&lt;br /&gt;
|     analspeculum = &lt;br /&gt;
|        gayincest = &lt;br /&gt;
|         gaylatex = &lt;br /&gt;
|       gayleather =&lt;br /&gt;
|   gayhelpinghand = &lt;br /&gt;
|     self-fisting = &lt;br /&gt;
|     cocksounding = &lt;br /&gt;
|       gayhandjob = Y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 1.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
{{preamble}}&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 2.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 3.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 4.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 5.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
&lt;br /&gt;
== Gay Pornography ==&lt;br /&gt;
{{GayPornographicCareerListTop|list=&lt;br /&gt;
{{GayPornographicCareerList|site= ericvideos |id= |alias=Eduardo |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= FlavaWorks |id=|alias=Eduardo |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= hotboys |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= irmãosdotados |id=117 |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= meninosonline |id=eduardo-lima-nando-chaves-bareback-com-prazer-edu-nando |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= papicock |id= 1762 |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= petrickgarcia |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= pornofox.com.br |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= rawhole |id= |alias= |notes= }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Heterosexual Pornography==&lt;br /&gt;
{{StraightPornographicCareerListTop|list=&lt;br /&gt;
{{StraightPornographicCareerList|site= BradMontana.com|id= |alias=|notes= }}&lt;br /&gt;
{{StraightPornographicCareerList|site= pornofox.com.br |id= |alias=N/A |notes= }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Amateur Videos==&lt;br /&gt;
{{AmateurCareerListTop|list=&lt;br /&gt;
{{AmateurCareerList |site=justforfans |id=EduardoLimaHot |alias= |gayblowjob=Y |gayrimming=Y |gayanal=Y |gaybareback=Y |gaycondoms=N |solo=Y |dildoplay=N |masturbation=Y |straightblowjob=Y |vaginal=Y |straightanal=N |straightrimjob=Y |transsexual=Y }}&lt;br /&gt;
{{AmateurCareerList |site=privacy.com.br |id=daddylima |alias= |gayblowjob=Y |gayrimming=Y |gayanal=Y |gaybareback=Y |gaycondoms=N |solo=Y |dildoplay=N |masturbation=Y |straightblowjob=Y |vaginal=Y |straightanal=N |straightrimjob=Y |transsexual=Y }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Television &amp;amp; Streaming==&lt;br /&gt;
{{XVideosRedListTop|list= &lt;br /&gt;
{{XVideosRedList|channel= Lipe Louco }}&lt;br /&gt;
{{XVideosRedList|channel= Luana Prado }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Filmography==&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
{{Auth}}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Eduardo_Lima&amp;diff=2952</id>
		<title>Eduardo Lima</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Eduardo_Lima&amp;diff=2952"/>
		<updated>2025-03-14T23:28:53Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;{{Biobox new |     natural butt = Y |           tattoo = Y |     masturbation = Y |         close-up = Y |        solodildo =  |             feet =  |      solopissing =  | soloassfingering =  |           gaping =  |   muscle-flexing = Y |bodybuildingposing = Y |         swimwear =  |          massage =  |        wrestling =   |     oilwrestling =   |        gaykissing= Y |       gayblowjob = Y |         bareback = Y |          gayanal = Y |       gayrimming = Y |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Biobox new&lt;br /&gt;
|     natural butt = Y&lt;br /&gt;
|           tattoo = Y&lt;br /&gt;
|     masturbation = Y&lt;br /&gt;
|         close-up = Y&lt;br /&gt;
|        solodildo = &lt;br /&gt;
|             feet = &lt;br /&gt;
|      solopissing = &lt;br /&gt;
| soloassfingering = &lt;br /&gt;
|           gaping = &lt;br /&gt;
|   muscle-flexing = Y&lt;br /&gt;
|bodybuildingposing = Y&lt;br /&gt;
|         swimwear = &lt;br /&gt;
|          massage = &lt;br /&gt;
|        wrestling =  &lt;br /&gt;
|     oilwrestling = &lt;br /&gt;
&lt;br /&gt;
|        gaykissing= Y&lt;br /&gt;
|       gayblowjob = Y&lt;br /&gt;
|         bareback = Y&lt;br /&gt;
|          gayanal = Y&lt;br /&gt;
|       gayrimming = Y&lt;br /&gt;
|           facial = Y&lt;br /&gt;
|       cum eating = Y&lt;br /&gt;
|      gaycreampie = Y&lt;br /&gt;
| gay cum swapping = &lt;br /&gt;
|            gaydp = &lt;br /&gt;
|              top = Y&lt;br /&gt;
|      topbareback = Y&lt;br /&gt;
|           bottom = &lt;br /&gt;
|   bottombareback = Y&lt;br /&gt;
|      topcreampie = Y&lt;br /&gt;
|   bottomcreampie = &lt;br /&gt;
&lt;br /&gt;
|          blowjob = Y&lt;br /&gt;
|         hardcore = Y&lt;br /&gt;
|             anal = Y&lt;br /&gt;
|         strap-on = &lt;br /&gt;
|      watersports = &lt;br /&gt;
|         creampie = Y&lt;br /&gt;
&lt;br /&gt;
|       gaybondage = &lt;br /&gt;
|         spanking = &lt;br /&gt;
|             cfnm = &lt;br /&gt;
|       suspension = &lt;br /&gt;
|          torture = &lt;br /&gt;
|              wax = &lt;br /&gt;
|    tickletorture = &lt;br /&gt;
|       domination = &lt;br /&gt;
|       submission = &lt;br /&gt;
|       gayfisting = &lt;br /&gt;
|cum swapping female-male = &lt;br /&gt;
&lt;br /&gt;
|           rimjob = Y&lt;br /&gt;
|straightinterracial =Y&lt;br /&gt;
|          fisting = &lt;br /&gt;
|          bukkake =&lt;br /&gt;
&lt;br /&gt;
|       gaybukkake = &lt;br /&gt;
|   gaywatersports = &lt;br /&gt;
|    gayfootfetish = &lt;br /&gt;
|    gaydeepthroat = Y&lt;br /&gt;
|   gayinterracial = Y&lt;br /&gt;
|     analspeculum = &lt;br /&gt;
|        gayincest = &lt;br /&gt;
|         gaylatex = &lt;br /&gt;
|       gayleather =&lt;br /&gt;
|   gayhelpinghand = &lt;br /&gt;
|     self-fisting = &lt;br /&gt;
|     cocksounding = &lt;br /&gt;
|       gayhandjob = Y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 1.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
{{preamble}}&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 2.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 3.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 4.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
[[File:Eduardo Lima &amp;amp; Estevão Oliveira 5.jpg|thumb|at Hotboys with [[Estevão Oliveira]], 2019|250px]]&lt;br /&gt;
&lt;br /&gt;
== Gay Pornography ==&lt;br /&gt;
{{GayPornographicCareerListTop|list=&lt;br /&gt;
{{GayPornographicCareerList|site= ericvideos |id= |alias=Eduardo |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= FlavaWorks |id=|alias=Eduardo |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= hotboys |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= irmãosdotados |id=117 |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= meninosonline |id=eduardo-lima-nando-chaves-bareback-com-prazer-edu-nando |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= papicock |id= 1762 |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= petrickgarcia |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= pornofox.com.br |id= |alias= |notes= }}&lt;br /&gt;
{{GayPornographicCareerList|site= rawhole |id= |alias= |notes= }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Heterosexual Pornography==&lt;br /&gt;
{{StraightPornographicCareerListTop|list=&lt;br /&gt;
{{StraightPornographicCareerList|site= BradMontana.com|id= |alias=|notes= }}&lt;br /&gt;
{{StraightPornographicCareerList|site= pornofox.com.br |id= |alias=N/A |notes= }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Amateur Videos==&lt;br /&gt;
{{AmateurCareerListTop|list=&lt;br /&gt;
{{AmateurCareerList |site=justforfans |id=EduardoLimaHot |alias= |gayblowjob=Y |gayrimming=Y |gayanal=Y |gaybareback=Y |gaycondoms=N |solo=Y |dildoplay=N |masturbation=Y |straightblowjob=Y |vaginal=Y |straightanal=N |straightrimjob=Y |transsexual=Y }}&lt;br /&gt;
{{AmateurCareerList |site=privacy.com.br |id=daddylima |alias= |gayblowjob=Y |gayrimming=Y |gayanal=Y |gaybareback=Y |gaycondoms=N |solo=Y |dildoplay=N |masturbation=Y |straightblowjob=Y |vaginal=Y |straightanal=N |straightrimjob=Y |transsexual=Y }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Television &amp;amp; Streaming==&lt;br /&gt;
{{TVChannelListTop|list= &lt;br /&gt;
{{TVChannelList|channel= Atrizes Amadoras }}&lt;br /&gt;
{{TVChannelList|channel= Bela India Prime }}&lt;br /&gt;
{{TVChannelList|channel= Festa Prime }}&lt;br /&gt;
{{TVChannelList|channel= Morena Emily }}&lt;br /&gt;
{{TVChannelList|channel= Nathalia Fontes }}&lt;br /&gt;
{{TVChannelList|channel= Nikke Casada }} &lt;br /&gt;
{{TVChannelList|channel= Red Fire TV }} &lt;br /&gt;
{{TVChannelList|channel= Sexy Hot }} &lt;br /&gt;
{{TVChannelList|channel= Teste de Fudelidade }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Filmography==&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
{{Auth}}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Template:XVideosRedList&amp;diff=2951</id>
		<title>Template:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Template:XVideosRedList&amp;diff=2951"/>
		<updated>2025-03-14T23:28:01Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;&amp;lt;noinclude&amp;gt; {{sandbox other||{{pp-template|small=yes}}}} {| {{STDT|sortable career align-center}} &amp;lt;/noinclude&amp;gt; &amp;lt;includeonly&amp;gt;{{#invoke:XVideosRedList|channel}}&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt; |} &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{sandbox other||{{pp-template|small=yes}}}}&lt;br /&gt;
{| {{STDT|sortable career align-center}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#invoke:XVideosRedList|channel}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Template:XVideosRedListTop&amp;diff=2950</id>
		<title>Template:XVideosRedListTop</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Template:XVideosRedListTop&amp;diff=2950"/>
		<updated>2025-03-14T23:27:42Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;&amp;lt;includeonly&amp;gt; &amp;lt;div style=&amp;quot;overflow: auto;&amp;quot;&amp;gt; {| class=&amp;quot;sortable career align-middle table&amp;quot; style=&amp;quot;width: 100%; clear: both; empty-cells:show&amp;quot; {{#invoke:XVideosRedList|tableHeader}} {{#if:{{{list|}}}|{{{list|}}} {{!}}{{)}}}} &amp;lt;/div&amp;gt; &amp;lt;/includeonly&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow: auto;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;sortable career align-middle table&amp;quot; style=&amp;quot;width: 100%; clear: both; empty-cells:show&amp;quot;&lt;br /&gt;
{{#invoke:XVideosRedList|tableHeader}}&lt;br /&gt;
{{#if:{{{list|}}}|{{{list|}}}&lt;br /&gt;
{{!}}{{)}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2949</id>
		<title>Module:XVideosRedList/L</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/L&amp;diff=2949"/>
		<updated>2025-03-14T23:27:01Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;-- Channel data for names starting with &amp;#039;L&amp;#039; local L = {}  -- Channel data L.channels = {     [&amp;quot;Lipe Louco&amp;quot;] = {         name = &amp;quot;Lipe Louco&amp;quot;,         aliases = {&amp;quot;lipelouco&amp;quot;, &amp;quot;lipe louco&amp;quot;, &amp;quot;lipe-louco&amp;quot;},         channel = &amp;quot;lipiroco&amp;quot;,         genre = &amp;quot;Straight&amp;quot;,         notes = &amp;quot;&amp;quot;     },     [&amp;quot;Luana Prado&amp;quot;] = {         name = &amp;quot;Luana Prado&amp;quot;,         aliases = {&amp;quot;luanaprado&amp;quot;, &amp;quot;luana prado&amp;quot;, &amp;quot;luana-prado&amp;quot;},         channel = &amp;quot;luana_prado_official&amp;quot;,         genre = &amp;quot;Trans&amp;quot;,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Channel data for names starting with &#039;L&#039;&lt;br /&gt;
local L = {}&lt;br /&gt;
&lt;br /&gt;
-- Channel data&lt;br /&gt;
L.channels = {&lt;br /&gt;
    [&amp;quot;Lipe Louco&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Lipe Louco&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;lipelouco&amp;quot;, &amp;quot;lipe louco&amp;quot;, &amp;quot;lipe-louco&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;lipiroco&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Straight&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    [&amp;quot;Luana Prado&amp;quot;] = {&lt;br /&gt;
        name = &amp;quot;Luana Prado&amp;quot;,&lt;br /&gt;
        aliases = {&amp;quot;luanaprado&amp;quot;, &amp;quot;luana prado&amp;quot;, &amp;quot;luana-prado&amp;quot;},&lt;br /&gt;
        channel = &amp;quot;luana_prado_official&amp;quot;,&lt;br /&gt;
        genre = &amp;quot;Trans&amp;quot;,&lt;br /&gt;
        notes = &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return L&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/i18n&amp;diff=2948</id>
		<title>Module:XVideosRedList/i18n</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList/i18n&amp;diff=2948"/>
		<updated>2025-03-14T23:26:07Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;-- i18n submodule for Module:XVideosRedList  local i18n = {     errors = {         channelIsEmpty = &amp;quot;Channel name is empty&amp;quot;,         channelNotFound = &amp;quot;Channel &amp;#039;%s&amp;#039; not found&amp;quot;,         duplicateChannels = &amp;quot;Multiple channels found with the name &amp;#039;%s&amp;#039;&amp;quot;,         moduleLoadError = &amp;quot;Could not load channel data module for letter &amp;#039;%s&amp;#039;&amp;quot;,         invalidModuleStructure = &amp;quot;Invalid structure in channel data module for letter &amp;#039;%s&amp;#039;&amp;quot;,         noGenreProvided = &amp;quot;No genre provided for th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- i18n submodule for Module:XVideosRedList&lt;br /&gt;
&lt;br /&gt;
local i18n = {&lt;br /&gt;
    errors = {&lt;br /&gt;
        channelIsEmpty = &amp;quot;Channel name is empty&amp;quot;,&lt;br /&gt;
        channelNotFound = &amp;quot;Channel &#039;%s&#039; not found&amp;quot;,&lt;br /&gt;
        duplicateChannels = &amp;quot;Multiple channels found with the name &#039;%s&#039;&amp;quot;,&lt;br /&gt;
        moduleLoadError = &amp;quot;Could not load channel data module for letter &#039;%s&#039;&amp;quot;,&lt;br /&gt;
        invalidModuleStructure = &amp;quot;Invalid structure in channel data module for letter &#039;%s&#039;&amp;quot;,&lt;br /&gt;
        noGenreProvided = &amp;quot;No genre provided for the channel&amp;quot;,&lt;br /&gt;
        invalidGenre = &amp;quot;Invalid genre &#039;%s&#039; provided&amp;quot;,&lt;br /&gt;
        channelUrlMissing = &amp;quot;No channel URL provided for the entry&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return i18n&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2940</id>
		<title>Module:XVideosRedList</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Module:XVideosRedList&amp;diff=2940"/>
		<updated>2025-03-14T23:24:24Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;-- This module handles the display of XVideos RED channel information local p = {}  -- Load the i18n submodule for text strings and error messages local i18n = require(&amp;#039;Module:XVideosRedList/i18n&amp;#039;)  -- Base URL for XVideos RED local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot; -- Suffix to append to all XVideos RED URLs local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35&amp;quot; -- Main header URL for title link local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot; -- Default category f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module handles the display of XVideos RED channel information&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load the i18n submodule for text strings and error messages&lt;br /&gt;
local i18n = require(&#039;Module:XVideosRedList/i18n&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Base URL for XVideos RED&lt;br /&gt;
local BASE_URL = &amp;quot;https://www.xvideos.red/&amp;quot;&lt;br /&gt;
-- Suffix to append to all XVideos RED URLs&lt;br /&gt;
local URL_SUFFIX = &amp;quot;?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Main header URL for title link&lt;br /&gt;
local HEADER_URL = &amp;quot;https://www.xvideos.red/gay?sxcaf=TARTFSJC35&amp;quot;&lt;br /&gt;
-- Default category for all channels&lt;br /&gt;
local DEFAULT_CATEGORY = &amp;quot;XVideos RED models&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Helper function to check if a table contains a specific value&lt;br /&gt;
-- @param tbl table: The table to search&lt;br /&gt;
-- @param value any: The value to find&lt;br /&gt;
-- @return boolean: True if the value is found, false otherwise&lt;br /&gt;
function table.contains(tbl, value)&lt;br /&gt;
    for _, v in pairs(tbl) do&lt;br /&gt;
        if v == value then return true end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to format error message in red bold text&lt;br /&gt;
-- @param error string: The error message&lt;br /&gt;
-- @return string: Formatted error message&lt;br /&gt;
local function formatError(error)&lt;br /&gt;
    return string.format(&#039;|-\n| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:center;vertical-align:middle;color:red;font-weight:bold;&amp;quot; | %s\n&#039;, error)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Table of genres with their aliases for normalization&lt;br /&gt;
-- Each key is a standard genre name, and the value is a list of aliases or abbreviations&lt;br /&gt;
local genres = {&lt;br /&gt;
    Straight = {&amp;quot;s&amp;quot;, &amp;quot;str&amp;quot;, &amp;quot;str8&amp;quot;},&lt;br /&gt;
    Gay = {&amp;quot;g&amp;quot;, &amp;quot;homo&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;homosexual&amp;quot;},&lt;br /&gt;
    Transexual = {&amp;quot;t&amp;quot;, &amp;quot;trans&amp;quot;, &amp;quot;tra&amp;quot;, &amp;quot;trs&amp;quot;},&lt;br /&gt;
    Bisexual = {&amp;quot;b&amp;quot;, &amp;quot;bi&amp;quot;, &amp;quot;bisex&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Table of icons for standard genres&lt;br /&gt;
-- Maps standard genre names to their corresponding icon file names&lt;br /&gt;
local iconMap = {&lt;br /&gt;
    [&amp;quot;Straight&amp;quot;] = &amp;quot;StraightIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Gay&amp;quot;] = &amp;quot;GayIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Transexual&amp;quot;] = &amp;quot;TranssexualIconPNG.png&amp;quot;,&lt;br /&gt;
    [&amp;quot;Bisexual&amp;quot;] = &amp;quot;BisexualIconPNG.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Function to normalize genre input to a standard genre name&lt;br /&gt;
-- @param input string: The genre input to normalize&lt;br /&gt;
-- @return string: The standard genre name if matched, otherwise the original input&lt;br /&gt;
-- @return boolean: True if the genre is valid, false otherwise&lt;br /&gt;
local function normalizeGenre(input)&lt;br /&gt;
    local lowerInput = input:lower()  -- Convert input to lowercase for case-insensitive comparison&lt;br /&gt;
    for standard, aliases in pairs(genres) do&lt;br /&gt;
        if lowerInput == standard:lower() or table.contains(aliases, lowerInput) then&lt;br /&gt;
            return standard, true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return input, false  -- Return original input if no match is found, plus flag indicating no match&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to handle channel information display&lt;br /&gt;
-- @param frame table: The frame object passed from the template&lt;br /&gt;
-- @return string: The formatted table row or an error message&lt;br /&gt;
function p.channel(frame)&lt;br /&gt;
    -- Get template arguments&lt;br /&gt;
    local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:XVideosRedList&#039;})&lt;br /&gt;
    &lt;br /&gt;
    -- Check if channel parameter is provided&lt;br /&gt;
    if not args.channel or args.channel == &#039;&#039; then&lt;br /&gt;
        return formatError(i18n.errors.channelIsEmpty)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get channel data&lt;br /&gt;
    local channel, error = getChannel(args.channel)&lt;br /&gt;
&lt;br /&gt;
    if error then&lt;br /&gt;
        return formatError(error)&lt;br /&gt;
    elseif channel then&lt;br /&gt;
        -- Format channel data, prioritizing template arguments over module data&lt;br /&gt;
        local alias = args.alias or channel.alias or &#039;N/A&#039;&lt;br /&gt;
        &lt;br /&gt;
        -- Fix for empty notes field&lt;br /&gt;
        local notes = args.notes or channel.notes or &#039;N/A&#039;&lt;br /&gt;
        if notes == &amp;quot;&amp;quot; then&lt;br /&gt;
            notes = &#039;N/A&#039;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Normalize and process genre with icon&lt;br /&gt;
        local inputGenre = args.genre or channel.genre or &#039;&#039;&lt;br /&gt;
        if inputGenre == &#039;&#039; then&lt;br /&gt;
            return formatError(i18n.errors.noGenreProvided)&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local normalizedGenre, isValidGenre = normalizeGenre(inputGenre)&lt;br /&gt;
        local genreOutput&lt;br /&gt;
        &lt;br /&gt;
        if isValidGenre and iconMap[normalizedGenre] then&lt;br /&gt;
            genreOutput = string.format(&#039;[[File:%s|13px|link=]] %s&#039;, iconMap[normalizedGenre], normalizedGenre)&lt;br /&gt;
        else&lt;br /&gt;
            -- If genre is invalid, display error in the genre cell&lt;br /&gt;
            genreOutput = string.format(&#039;&amp;lt;span style=&amp;quot;color:red;font-weight:bold;&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;, &lt;br /&gt;
                string.format(i18n.errors.invalidGenre, inputGenre))&lt;br /&gt;
            -- Still log for debugging&lt;br /&gt;
            mw.log(string.format(i18n.errors.invalidGenre, inputGenre))&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        -- Handle channel URL&lt;br /&gt;
        local channelUrl = &amp;quot;&amp;quot;&lt;br /&gt;
        local channelDisplay = channel.name&lt;br /&gt;
        &lt;br /&gt;
        if channel.channel and channel.channel ~= &#039;&#039; then&lt;br /&gt;
            channelUrl = BASE_URL .. channel.channel .. URL_SUFFIX&lt;br /&gt;
            channelDisplay = string.format(&#039;[%s %s]&#039;, channelUrl, channel.name)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Format row with gathered data&lt;br /&gt;
        local result = string.format(&lt;br /&gt;
            &#039;|-\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;text-align:center;vertical-align:middle;&amp;quot; | %s\n| style=&amp;quot;display:none;&amp;quot; |\n&#039;,&lt;br /&gt;
            channelDisplay,&lt;br /&gt;
            genreOutput,&lt;br /&gt;
            alias,&lt;br /&gt;
            notes&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
        -- Add standard category for all entries in main namespace&lt;br /&gt;
        local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
        if ns == 0 then&lt;br /&gt;
            result = result .. &#039;[[Category:&#039; .. DEFAULT_CATEGORY .. &#039;]]&#039;&lt;br /&gt;
            -- Add tracking category for main namespace&lt;br /&gt;
            result = result .. &#039;[[Category:Articles using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 2 then&lt;br /&gt;
            result = result .. &#039;[[Category:User pages using XVideosRedList]]&#039;&lt;br /&gt;
        elseif ns == 118 then&lt;br /&gt;
            result = result .. &#039;[[Category:Draft pages using XVideosRedList]]&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    else&lt;br /&gt;
        return formatError(string.format(i18n.errors.channelNotFound, args.channel))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to find and retrieve channel data from appropriate module&lt;br /&gt;
-- @param name string: The name of the channel to find&lt;br /&gt;
-- @return table|string: The channel data table or an error message&lt;br /&gt;
function getChannel(name)&lt;br /&gt;
    if not name then return nil, i18n.errors.channelIsEmpty end&lt;br /&gt;
    &lt;br /&gt;
    local modulesToTry = {}&lt;br /&gt;
    local firstLetter = name:sub(1, 1):upper()&lt;br /&gt;
    table.insert(modulesToTry, firstLetter)&lt;br /&gt;
    &lt;br /&gt;
    -- Handle &amp;quot;The&amp;quot; prefix&lt;br /&gt;
    local nameWithoutThe = name:lower():gsub(&amp;quot;^the%s*&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if nameWithoutThe ~= name:lower() then&lt;br /&gt;
        local theFirstLetter = nameWithoutThe:sub(1, 1):upper()&lt;br /&gt;
        if theFirstLetter ~= firstLetter then&lt;br /&gt;
            table.insert(modulesToTry, theFirstLetter)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, module in ipairs(modulesToTry) do&lt;br /&gt;
        local success, channelModule = pcall(require, &#039;Module:XVideosRedList/&#039; .. module)&lt;br /&gt;
        &lt;br /&gt;
        if success then&lt;br /&gt;
            if type(channelModule) == &amp;quot;table&amp;quot; and type(channelModule.channels) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                local matchedChannels = {}&lt;br /&gt;
                &lt;br /&gt;
                -- First try direct match or aliases&lt;br /&gt;
                for _, channel in pairs(channelModule.channels) do&lt;br /&gt;
                    if channel.name:lower() == name:lower() or &lt;br /&gt;
                       (channel.aliases and table.contains(channel.aliases, name:lower())) then&lt;br /&gt;
                        table.insert(matchedChannels, channel)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If found matches, return results&lt;br /&gt;
                if #matchedChannels &amp;gt; 1 then&lt;br /&gt;
                    return nil, string.format(i18n.errors.duplicateChannels, name)&lt;br /&gt;
                elseif #matchedChannels == 1 then&lt;br /&gt;
                    return matchedChannels[1]&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                -- If no direct matches found, try redirects&lt;br /&gt;
                if channelModule.redirects and channelModule.redirects[name:lower()] then&lt;br /&gt;
                    return getChannel(channelModule.redirects[name:lower()])&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                mw.log(string.format(i18n.errors.invalidModuleStructure, module))&lt;br /&gt;
                return nil, string.format(i18n.errors.invalidModuleStructure, module)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log(string.format(i18n.errors.moduleLoadError, module))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return nil, string.format(i18n.errors.channelNotFound, name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to generate the table header with XVideos RED logo link&lt;br /&gt;
-- @return string: The formatted table header&lt;br /&gt;
function p.tableHeader()&lt;br /&gt;
    local headerLink = string.format(&#039;[[File:Xvideosredlogo.svg|24px|link=]] [%s XVideos RED]&#039;, HEADER_URL)&lt;br /&gt;
    &lt;br /&gt;
    return string.format(&#039;! colspan=&amp;quot;5&amp;quot; | %s\n|-\n!style=&amp;quot;width: 30%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Studio name\n!style=&amp;quot;width: 20%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Genre\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Alias\n!style=&amp;quot;width: 25%%; text-align: center; background-color:#E7E7E7;&amp;quot; |Notes\n!style=&amp;quot;display:none;&amp;quot; |\n&#039;, headerLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:TestAV1-0029-P2.webm&amp;diff=2939</id>
		<title>File:TestAV1-0029-P2.webm</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:TestAV1-0029-P2.webm&amp;diff=2939"/>
		<updated>2025-03-11T00:26:44Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded via PBC Media Converter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=TestAV1-0029-P2}}&lt;br /&gt;
|date=2018&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:WebM videos]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=File:TestAV1-0029-P1.webm&amp;diff=2938</id>
		<title>File:TestAV1-0029-P1.webm</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=File:TestAV1-0029-P1.webm&amp;diff=2938"/>
		<updated>2025-03-11T00:26:42Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Uploaded via PBC Media Converter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=TestAV1-0029-P1}}&lt;br /&gt;
|date=2018&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:PeaceDeadC|PeaceDeadC]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:WebM videos]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Category:Ricky_Iba%C3%B1ez_videos&amp;diff=2937</id>
		<title>Category:Ricky Ibañez videos</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Category:Ricky_Iba%C3%B1ez_videos&amp;diff=2937"/>
		<updated>2025-03-10T23:48:31Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;{{MRV|Ricky Ibañez}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MRV|Ricky Ibañez}}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Category:WebM_videos&amp;diff=2936</id>
		<title>Category:WebM videos</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Category:WebM_videos&amp;diff=2936"/>
		<updated>2025-03-03T07:42:08Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;&amp;lt;center&amp;gt;200px&amp;lt;/center&amp;gt; {{Large category TOC 2}} Category:Categories Category:Videos by file format&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[File:WebM logo.svg|200px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Large category TOC 2}}&lt;br /&gt;
[[Category:Categories]]&lt;br /&gt;
[[Category:Videos by file format]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Category:American_men_videos&amp;diff=2935</id>
		<title>Category:American men videos</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Category:American_men_videos&amp;diff=2935"/>
		<updated>2025-03-03T07:41:36Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;{{Large category TOC}} American&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Large category TOC}}&lt;br /&gt;
[[Category:Videos of men by nationality|American]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Category:African_American_men_videos&amp;diff=2934</id>
		<title>Category:African American men videos</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Category:African_American_men_videos&amp;diff=2934"/>
		<updated>2025-03-03T07:41:16Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;{{Large category TOC}} African American&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Large category TOC}}&lt;br /&gt;
[[Category:Videos of men by ethnic group|African American]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Category:Afro-Brazilian_men_videos&amp;diff=2933</id>
		<title>Category:Afro-Brazilian men videos</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Category:Afro-Brazilian_men_videos&amp;diff=2933"/>
		<updated>2025-03-03T07:40:52Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;{{Large category TOC}} Afro-Brazilian&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Large category TOC}}&lt;br /&gt;
[[Category:Videos of men by ethnic group|Afro-Brazilian]]&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Template:Main_Page/styles.css&amp;diff=2928</id>
		<title>Template:Main Page/styles.css</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Template:Main_Page/styles.css&amp;diff=2928"/>
		<updated>2025-02-24T20:00:37Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Created page with &amp;quot;/* {{pp|small=yes}} */ .mp-box { 	border: 1px solid #aaa; /* all colors overriden on specific elements in @media screen */ 	padding: 0 0.5em 0.5em; 	margin-top: 4px; }  .mp-h2, body.skin-timeless .mp-h2 { /* Timeless needs a higher specificity */ 	border: 1px solid #aaa; /* all colors overriden on specific elements in @media screen */ 	margin: 0.5em 0; 	padding: 0.2em 0.4em; 	font-size: 120%; 	font-weight: bold; 	font-family: inherit; }  .mp-later { 	font-size: 85%; 	fon...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
.mp-box {&lt;br /&gt;
	border: 1px solid #aaa; /* all colors overriden on specific elements in @media screen */&lt;br /&gt;
	padding: 0 0.5em 0.5em;&lt;br /&gt;
	margin-top: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mp-h2,&lt;br /&gt;
body.skin-timeless .mp-h2 { /* Timeless needs a higher specificity */&lt;br /&gt;
	border: 1px solid #aaa; /* all colors overriden on specific elements in @media screen */&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	padding: 0.2em 0.4em;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-family: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mp-later {&lt;br /&gt;
	font-size: 85%;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mp-welcomecount {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	margin: 0.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mp-welcome {&lt;br /&gt;
	font-size: 162%;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mp-welcome h1,&lt;br /&gt;
#mp-welcome .mw-heading1 {&lt;br /&gt;
	font-size: inherit;&lt;br /&gt;
	font-family: inherit;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	border: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mp-free {&lt;br /&gt;
	font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#articlecount {&lt;br /&gt;
	font-size: 85%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#articlecount &amp;gt; ul {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#articlecount &amp;gt; ul &amp;gt; li {&lt;br /&gt;
	margin: 0; &lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#articlecount &amp;gt; ul &amp;gt; li::after {&lt;br /&gt;
	content: &amp;quot; · &amp;quot;;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#articlecount &amp;gt; ul &amp;gt; li:last-child::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* clear fix */&lt;br /&gt;
.mp-contains-float::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 875px) {&lt;br /&gt;
	/* We need to improve Template:POTD as used on the main page so that these&lt;br /&gt;
	 * hacks aren&#039;t necessary */&lt;br /&gt;
	#mp-tfp table,&lt;br /&gt;
	#mp-tfp tr,&lt;br /&gt;
	#mp-tfp td,&lt;br /&gt;
	#mp-tfp tbody {&lt;br /&gt;
		display: block !important;&lt;br /&gt;
		width: 100% !important;&lt;br /&gt;
		box-sizing: border-box;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	#mp-tfp tr:first-child td:first-child a.mw-file-description {&lt;br /&gt;
		text-align: center;&lt;br /&gt;
		display: table;&lt;br /&gt;
		margin: 0 auto;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#articlecount &amp;gt; ul &amp;gt; li::after {&lt;br /&gt;
		content: &amp;quot;&amp;quot;;&lt;br /&gt;
		font-weight: normal;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#articlecount &amp;gt; ul &amp;gt; li {&lt;br /&gt;
		display: block;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 875px) {&lt;br /&gt;
	#mp-upper {&lt;br /&gt;
		display: flex;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-left {&lt;br /&gt;
		flex: 1 1 55%;&lt;br /&gt;
		margin-right: 2px;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-right {&lt;br /&gt;
		flex: 1 1 45%;&lt;br /&gt;
		margin-left: 2px;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	#mp-topbanner {&lt;br /&gt;
		background-color: #f9f9f9;&lt;br /&gt;
		border-color: #ddd;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-banner {&lt;br /&gt;
		background-color: #fffaf5;&lt;br /&gt;
		border-color: #f2e0ce;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-left {&lt;br /&gt;
		background-color: #f5fffa;&lt;br /&gt;
		border-color: #cef2e0;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-left .mp-h2 {&lt;br /&gt;
		background-color: #cef2e0;&lt;br /&gt;
		border-color: #a3bfb1;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-right {&lt;br /&gt;
		 background-color: #f5faff;&lt;br /&gt;
		 border-color: #cedff2;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-right .mp-h2 {&lt;br /&gt;
		background-color: #cedff2;&lt;br /&gt;
		border-color: #a3b0bf;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-middle {&lt;br /&gt;
		background-color: #fff5fa;&lt;br /&gt;
		border-color: #f2cedd;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-middle .mp-h2 {&lt;br /&gt;
		background-color: #f2cedd;&lt;br /&gt;
		border-color: #bfa3af;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-lower {&lt;br /&gt;
		background-color: #faf5ff;&lt;br /&gt;
		border-color: #ddcef2;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-lower .mp-h2 {&lt;br /&gt;
		background-color: #ddcef2;&lt;br /&gt;
		border-color: #afa3bf;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-bottom {&lt;br /&gt;
		/* no background */&lt;br /&gt;
		border-color: #e2e2e2;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#mp-bottom .mp-h2 {&lt;br /&gt;
		background-color: #eee;&lt;br /&gt;
		border-color: #ddd;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* night mode */&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-topbanner {&lt;br /&gt;
		background-color: #171a1d;&lt;br /&gt;
		border-color: #676767;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-banner {&lt;br /&gt;
		background-color: #431107;&lt;br /&gt;
		border-color: #663428;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-left {&lt;br /&gt;
		background-color: #0b1e1c;&lt;br /&gt;
		border-color: #104437;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-left .mp-h2 {&lt;br /&gt;
		background-color: #104437;&lt;br /&gt;
		border-color: #2f4d41;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-right {&lt;br /&gt;
		 background-color: #0d1a27;&lt;br /&gt;
		 border-color: #082849;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-right .mp-h2 {&lt;br /&gt;
		background-color: #082849;&lt;br /&gt;
		border-color: #a3b0bf;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-middle {&lt;br /&gt;
		background-color: #270e1a;&lt;br /&gt;
		border-color: #882c43;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-middle .mp-h2 {&lt;br /&gt;
		background-color: #882c43;&lt;br /&gt;
		border-color: #926c80;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-lower {&lt;br /&gt;
		background-color: #130e20;&lt;br /&gt;
		border-color: #7545ab;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-lower .mp-h2 {&lt;br /&gt;
		background-color: #7545ab;&lt;br /&gt;
		border-color: #afa3bf;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-bottom {&lt;br /&gt;
		/* no background */&lt;br /&gt;
		border-color: #676767;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-night #mp-bottom .mp-h2 {&lt;br /&gt;
		background-color: #3d3d3d;&lt;br /&gt;
		border-color: #676767;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2927</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2927"/>
		<updated>2025-02-24T18:19:57Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION____NOTOC__&lt;br /&gt;
This is a &#039;&#039;&#039;test wiki server cluster&#039;&#039;&#039; that runs on the PBC software by the last Docker brunch. Ordinarily it runs the same version of the code as pbc.xxx (plus other wikis in &amp;quot;Deployments&amp;quot;), but may be configured differently with experimental features. The contents of this site may be volatile and buggy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-tfa&amp;quot;&amp;gt;&lt;br /&gt;
The [[Special:Version|current version]] of PBC running on this wiki is {{CURRENTVERSION}}. See [https://github.com/wikimedia/operations-mediawiki-config/blob/master/wmf-config/InitialiseSettings.php InitialiseSettings.php] for information about the configuration of this wiki server cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note:&#039;&#039;&#039; there is a new test cluster created as a replacement for prototype.wikimedia available [http://beta.wmflabs.org/ here]. It is a clone of all production wikis, where developers and regular users can test new features before we deploy them to production wiki. In case you want to test gadgets or user scripts on any Wikimedia project, you can also use that site. test1.pbc.xxx is not for testing of unreviewed software or MediaWiki, it is a last place where software is deployed before it goes to live production. New software, extensions and gadgets can be deployed immediately to the deployment cluster.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2926</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2926"/>
		<updated>2025-02-24T18:18:57Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Undo revision 2925 by PeaceDeadC (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * MediaWiki upgrade note:&lt;br /&gt;
 * On the server side, the following style files are modified for PBC:&lt;br /&gt;
 *&lt;br /&gt;
 * resources/src/mediawiki.skinning/elements.css&lt;br /&gt;
 * skins/Vector/variables.less&lt;br /&gt;
 *&lt;br /&gt;
 * Changed values are tagged with PBC comments.&lt;br /&gt;
 *&lt;br /&gt;
 * The following images are modified:&lt;br /&gt;
 *&lt;br /&gt;
 * skins/Vector/images/tab-break.png&lt;br /&gt;
 * skins/Vector/images/tab-normal-fade.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.svg&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.png&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.png&lt;br /&gt;
 * skins/Vector/images/watch-icon.svg&lt;br /&gt;
 * skins/Vector/images/watch-icon.png&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* Default styling for HTML elements */&lt;br /&gt;
#siteSub { display:block; font-weight:normal; font-size:small;}&lt;br /&gt;
dfn {&lt;br /&gt;
    font-style: inherit;  /* Reset default styling for &amp;lt;dfn&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wbr { display: inline-block; }&lt;br /&gt;
&lt;br /&gt;
#bodyContent p {&lt;br /&gt;
    font-size: 0.975em;&lt;br /&gt;
    margin-top: 0px; /* Отступ сверху */&lt;br /&gt;
    margin-bottom: 1px; /* Отступ снизу */&lt;br /&gt;
    line-height: 1.5em; /*Интерлиньяж (расстояние между строк)*/&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor link colors */&lt;br /&gt;
.wikiEditor-ui-tabs div a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a:visited {&lt;br /&gt;
  color: #d46007;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
q {&lt;br /&gt;
    quotes: &#039;&amp;quot;&#039; &#039;&amp;quot;&#039; &amp;quot;&#039;&amp;quot; &amp;quot;&#039;&amp;quot;;  /* Straight quote marks for &amp;lt;q&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
blockquote {&lt;br /&gt;
	overflow: hidden;  /* Avoid collision of background with floating elements */&lt;br /&gt;
}&lt;br /&gt;
strong.selflink {&lt;br /&gt;
    font-weight: 700;  /* Prevent the &#039;double bold&#039; bug in Firefox when using DirectWrite */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li {&lt;br /&gt;
     list-style-position: inside;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стили для переопределения конфликтующих правил */&lt;br /&gt;
.pbccdn .pbccdn-row {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap !important;&lt;br /&gt;
  margin-right: -0.75rem !important;&lt;br /&gt;
  margin-left: -0.75rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-3 {&lt;br /&gt;
  flex: 0 0 25% !important;&lt;br /&gt;
  max-width: 25% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-6 {&lt;br /&gt;
  flex: 0 0 50% !important;&lt;br /&gt;
  max-width: 50% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-md-12 {&lt;br /&gt;
  flex: 0 0 100% !important;&lt;br /&gt;
  max-width: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Сброс некоторых стилей MediaWiki, которые могут конфликтовать */&lt;br /&gt;
.pbccdn .pbccdn-card {&lt;br /&gt;
  width: auto !important;&lt;br /&gt;
  float: none !important;&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-direction: column !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Принудительное применение отступов */&lt;br /&gt;
.pbccdn .pbccdn-mb-4 {&lt;br /&gt;
  margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стиль для отладки - добавляет рамки вокруг колонок */&lt;br /&gt;
.debug .pbccdn-col-lg-3,&lt;br /&gt;
.debug .pbccdn-col-lg-6,&lt;br /&gt;
.debug .pbccdn-col-md-12 {&lt;br /&gt;
  border: 1px dashed red !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Consistent size for &amp;lt;sub&amp;gt; and &amp;lt;sup&amp;gt; */&lt;br /&gt;
.mw-body sub,&lt;br /&gt;
.mw-body sup,&lt;br /&gt;
span.careerstatusactive a { color: green; }&lt;br /&gt;
span.careerstatusretired a { color: red; }&lt;br /&gt;
&lt;br /&gt;
span.reference /* for Parsoid */ {&lt;br /&gt;
    font-size: 80%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mwe-popups {&lt;br /&gt;
box-shadow: 0 45px 70px -20px rgba(0,0,0,0.3), 0px 0px 1px rgba(0,0,0,0.5);&lt;br /&gt;
border:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main page fixes */&lt;br /&gt;
#interwiki-completelist {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #ca-delete {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #mp-topbanner {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Edit window toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
    height: 22px;&lt;br /&gt;
    margin-bottom: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor CSS for #wpTextbox1 is not loaded on .css/.js pages, so load here. [[phab:T97299]] */&lt;br /&gt;
.wikiEditor-ui-text #wpTextbox1 {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    resize: vertical;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide charinsert base for those not using the gadget */&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* People &amp;amp; gadget */&lt;br /&gt;
&lt;br /&gt;
.people ul, .gadget ul {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  font-size: 0.95em;&lt;br /&gt;
  line-height: 1.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.people .squeezed ul, .gadget .squeezed ul {&lt;br /&gt;
  line-height: 1.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#content .people ul, #content .gadget ul {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgallerybox {&lt;br /&gt;
                text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 244px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
.manifestmenlist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.manifestmenlistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.photographygallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mmagallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.photographygalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 262px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.mmagalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.sitemodellistgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.bodybuildergalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 268px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.modelboxdsblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 267px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
/* Highlight data points in the info action if specified in the URL */&lt;br /&gt;
body.action-info :target {&lt;br /&gt;
    background: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make the list of references smaller */&lt;br /&gt;
ol.references,&lt;br /&gt;
div.reflist,&lt;br /&gt;
div.refbegin {&lt;br /&gt;
    font-size: 90%;            /* Default font-size */&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.refbegin-100 {&lt;br /&gt;
    font-size: 100%;           /* Option for normal fontsize in {{refbegin}} */&lt;br /&gt;
}&lt;br /&gt;
div.reflist ol.references {&lt;br /&gt;
    font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
    list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight clicked reference in blue to help navigation */&lt;br /&gt;
span.citation:target {&lt;br /&gt;
    background-color: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure refs in table headers and the like aren&#039;t bold or italic */&lt;br /&gt;
sup.reference {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow hidden ref errors to be shown by user CSS */&lt;br /&gt;
span.brokenref {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */&lt;br /&gt;
.citation {&lt;br /&gt;
    word-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For linked citation numbers and document IDs, where&lt;br /&gt;
   the number need not be shown on a screen or a handheld,&lt;br /&gt;
   but should be included in the printed version */&lt;br /&gt;
@media screen, handheld {&lt;br /&gt;
    .citation .printonly {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
div.columns {&lt;br /&gt;
    margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
div.columns dl,&lt;br /&gt;
div.columns ol,&lt;br /&gt;
div.columns ul {&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid elements from breaking between columns */&lt;br /&gt;
.nocolbreak,&lt;br /&gt;
div.columns li,&lt;br /&gt;
div.columns dd dd {&lt;br /&gt;
    -webkit-column-break-inside: avoid;&lt;br /&gt;
    page-break-inside: avoid;&lt;br /&gt;
    break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */&lt;br /&gt;
.flowlist ul {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist ol {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 3.2em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist dl {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for horizontal lists (separator following item).&lt;br /&gt;
   IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].&lt;br /&gt;
   @source mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
   @revision 6 (2014-05-09)&lt;br /&gt;
   @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling the parameter fields in [[Template:Information]] and related templates&lt;br /&gt;
   also here (besides on [[MediaWiki:Filepage.css]]) to ensure proper preview&lt;br /&gt;
   on other pages than those in the file namespace */&lt;br /&gt;
.fileinfo-paramfield {&lt;br /&gt;
 background: #ccf;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 text-align: right;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 padding-right: 0.4em;&lt;br /&gt;
 width: 15%;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
    content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
    content: &amp;quot; · &amp;quot;;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd.hlist-last-child:after,&lt;br /&gt;
.hlist dt.hlist-last-child:after,&lt;br /&gt;
.hlist li.hlist-last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.filmographyblock { &lt;br /&gt;
    width: 60%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.filmographydivminiblock { &lt;br /&gt;
    width: 100%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,&lt;br /&gt;
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,&lt;br /&gt;
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
    counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
    counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
    content: &amp;quot; &amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Unbulleted lists */&lt;br /&gt;
.plainlist ol,&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
    line-height: inherit;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.plainlist ol li,&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default style for navigation boxes */&lt;br /&gt;
.navbox {                     /* Navbox container style */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: auto;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
    padding: 0.25em 1em;      /* Title, group and above/below styles */&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
th.navbox-group {             /* Group style */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    background: #fdfdfd;      /* Background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-list {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    border-color: #fdfdfd;    /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox th,&lt;br /&gt;
.navbox-title {&lt;br /&gt;
    background: #ccccff;      /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
th.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
    background: #ddddff;      /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
    background: #e6e6ff;      /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-even {&lt;br /&gt;
    background: #f7f7f7;      /* Even row striping */&lt;br /&gt;
}&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
    background: transparent;  /* Odd row striping */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */&lt;br /&gt;
    margin-top: -1px;          /* (doesn&#039;t work for IE6, but that&#039;s okay)       */&lt;br /&gt;
}&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
    padding: 0.125em 0;       /* Adjust hlist padding in navboxes */&lt;br /&gt;
}&lt;br /&gt;
ol + table.navbox,&lt;br /&gt;
ul + table.navbox {&lt;br /&gt;
    margin-top: 1em;        /* Prevent lists from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.episode {&lt;br /&gt;
  /*margin-left: 4px;*/&lt;br /&gt;
  line-height: 15.5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.episode th, .episode td {&lt;br /&gt;
  padding-top: 3px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default styling for Navbar template */&lt;br /&gt;
.navbar {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.navbar ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
.mw-body-content .navbar ul {&lt;br /&gt;
    line-height: 1em;&lt;br /&gt;
}&lt;br /&gt;
.navbar li {&lt;br /&gt;
    word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
.navbar.mini li span {&lt;br /&gt;
  font-variant: small-caps;&lt;br /&gt;
}&lt;br /&gt;
/* Navbar styling when nested in infobox and navbox */&lt;br /&gt;
.infobox .navbar {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &#039;show&#039;/&#039;hide&#039; buttons created dynamically by the CollapsibleTables javascript&lt;br /&gt;
   in [[MediaWiki:Common.js]] are styled here so they can be customised. */&lt;br /&gt;
.collapseButton {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
/* In navboxes, the show/hide button balances the v·d·e links&lt;br /&gt;
   from [[Template:Navbar]], so they need to be the same width. */&lt;br /&gt;
.navbox .collapseButton {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for JQuery makeCollapsible, matching that of collapseButton */&lt;br /&gt;
.mw-collapsible-toggle {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox .mw-collapsible-toggle {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
/* Infobox template style */&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 900px;&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        display:flex;&lt;br /&gt;
        justify-content:center;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.countrydata td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 260px;&lt;br /&gt;
	float: left;&lt;br /&gt;
        clear: left;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infoboxnew td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oddrowsgray tr:nth-child(odd) {&lt;br /&gt;
	background-color: #ededed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription1,&lt;br /&gt;
.infoboxdescription2,&lt;br /&gt;
.infoboxdescription3,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    padding: 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname1,&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdescription1 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#657D91), color-stop(100%,#596F80)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname2,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdescription2 {&lt;br /&gt;
    background: #d2801e; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#d2801e), color-stop(100%,#653f03)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname3,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription3 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#292821), color-stop(100%,#292821)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #FFFFFF; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamebiobox,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdescriptionbiobox {&lt;br /&gt;
    background: #824d1f; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #657D91 0%, #596F80 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#657D91), color-stop(100%,#292821)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #657D91 0%,#596F80 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #657D91 0%,#596F80 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&amp;quot;#657D91&amp;quot;, endColorstr=&amp;quot;#596F80&amp;quot;,GradientType=0 ); /* IE6-9 */&lt;br /&gt;
    color: #F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamenv,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    background: #55B784; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#55B784), color-stop(100%,#001E0E)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    color: ##F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamefilmtv,&lt;br /&gt;
.infoboxdetailsfilmtv {&lt;br /&gt;
    background: #D1E6F4; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#D1E6F4), color-stop(100%,#17405C)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Collapsing sections in infoboxes */&lt;br /&gt;
.section-collapse {&lt;br /&gt;
    border-color: #ffffff;&lt;br /&gt;
    border-style: solid;&lt;br /&gt;
    border-width: 2px 2px 0 0;&lt;br /&gt;
    content: &amp;quot;&amp;quot;;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    height: 7px;&lt;br /&gt;
    margin-right: 5px;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    right: 0;&lt;br /&gt;
    top: 5px;&lt;br /&gt;
    transform: rotate(-45deg);&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
    width: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.section-collapsed {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collapsed-icon {&lt;br /&gt;
   margin-top: -2px;&lt;br /&gt;
   transform: rotate(135deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxscene {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxsceneinline {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxepisodelist {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetition {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox .image_wrapper {&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:10px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after,&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after { bottom:-4px; }&lt;br /&gt;
&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after { bottom:-3px; }&lt;br /&gt;
&lt;br /&gt;
/** NAVI BARS **/&lt;br /&gt;
div.navi {&lt;br /&gt;
  position:relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box {&lt;br /&gt;
  filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffffff,EndColorStr=#ffeeeeee);&lt;br /&gt;
  background-image:linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-o-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-moz-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-ms-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #eee));&lt;br /&gt;
  border:1px solid #AAA;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  min-height:60px;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  margin:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi      .box { width:100%; }&lt;br /&gt;
div.navi.thin .box { width:100%; }&lt;br /&gt;
div.navi.wide .box { width:100%; }&lt;br /&gt;
div.navi.nat  .box { width:40em; }&lt;br /&gt;
div.navi.full .box { width:unset; }&lt;br /&gt;
&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
&lt;br /&gt;
div.navi .heading {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a:hover {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .clear {&lt;br /&gt;
  height:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .wrapper {&lt;br /&gt;
  padding: 0px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dl,&lt;br /&gt;
div.navi .wrapper.hlist &amp;gt; ul {&lt;br /&gt;
  margin:0.667em 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  clear:left;&lt;br /&gt;
  border-right:2px solid #999;&lt;br /&gt;
  margin:0 -2px 0 0;&lt;br /&gt;
  padding:2px 8px 2px 0px;&lt;br /&gt;
  width:25%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dd {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-left:2px solid #888;&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:2px 0px 2px 8px;&lt;br /&gt;
  width:67%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt, div.navi dd {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  margin:0.667em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table th {&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  border-right:2px solid #888;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table td {&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav .wrapper p {&lt;br /&gt;
  margin-top:0.667em;&lt;br /&gt;
  margin-bottom:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .selflink {&lt;br /&gt;
  font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi.nat  .box { width:80em; }&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
/* natcat */&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
  background-color:#FC6 !important;&lt;br /&gt;
  border-color:#CCA352 !important;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr.natcat &amp;gt; th {&lt;br /&gt;
  background-color:#FFE6B3;&lt;br /&gt;
  border-color:#CCB88F;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.natcat:nth-child(odd) {&lt;br /&gt;
  background-color:#FFF8E8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove after shadow for tables that have been centered, otherwise the shadow spans the entire page */&lt;br /&gt;
.table[class*=center]::after,&lt;br /&gt;
.table.noshadowafter::after { background-image:none; }&lt;br /&gt;
&lt;br /&gt;
div.infobox table,&lt;br /&gt;
div.nav table { background-color:transparent; }&lt;br /&gt;
&lt;br /&gt;
.careerlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	clear: left;&lt;br /&gt;
        margin: 0em 0.5em 0em 0em;&lt;br /&gt;
	width: 250px;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
        text-align: left;&lt;br /&gt;
        line-height: 1.5em;&lt;br /&gt;
	background: #f9f9f9;&lt;br /&gt;
        color: black;&lt;br /&gt;
	float: left;&lt;br /&gt;
        display:inline;&lt;br /&gt;
        border: 1px solid #aaa;&lt;br /&gt;
        border-spacing: 3px;&lt;br /&gt;
	padding: 0.2em;&lt;br /&gt;
	overflow: auto;&lt;br /&gt;
	z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-imagearea {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
.infobox-imagearea &amp;gt; div:not(:first-child) {&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-rows {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
#content .infobox-rows p {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows audio {&lt;br /&gt;
	width: 184px;&lt;br /&gt;
}&lt;br /&gt;
/* Merge adjacent dls in the infobox (since they&#039;re usually supposed to be one, but the wiki screws up sometimes) */&lt;br /&gt;
.infobox-rows dl + dl {&lt;br /&gt;
	margin-top: -0.4em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows dl:last-child {&lt;br /&gt;
	margin-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-footer {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.biobox-header {&lt;br /&gt;
	background:#ff7f00;&lt;br /&gt;
        color: #ffffff;&lt;br /&gt;
        text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Alternating table rows, primarily used with [[Template:Biobox row]] */&lt;br /&gt;
.alternaterows tr:nth-child(even),&lt;br /&gt;
.infobox-rows tr:nth-child(even) {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The blue header used throughout the wiki */&lt;br /&gt;
.mcwiki-header {&lt;br /&gt;
	background: #ff7f00;&lt;br /&gt;
        color: white;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.czechhunterlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodylist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodysceneinline {&lt;br /&gt;
	display: block;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gaywargameslist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hunkchannellist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pornographiccareerlistgay {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerliststraight {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerlistbisexual {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetitionbb {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infobox caption {&lt;br /&gt;
    font-size: 125%;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.infobox td,&lt;br /&gt;
.infobox th {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered td,&lt;br /&gt;
.infobox.bordered th {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered .borderless td,&lt;br /&gt;
.infobox.bordered .borderless th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.sisterproject {&lt;br /&gt;
    width: 20em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.infobox.standard-talk.bordered td,&lt;br /&gt;
.infobox.standard-talk.bordered th {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* styles for bordered infobox with merged rows */&lt;br /&gt;
.infobox.bordered .mergedtoprow td,&lt;br /&gt;
.infobox.bordered .mergedtoprow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.bordered .mergedrow td,&lt;br /&gt;
.infobox.bordered .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styles for geography infoboxes, eg countries,&lt;br /&gt;
   country subdivisions, cities, etc.            */&lt;br /&gt;
.infobox.geography {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    line-height: 1.2em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography  td,&lt;br /&gt;
.infobox.geography  th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
.infobox.geography .mergedtoprow td,&lt;br /&gt;
.infobox.geography .mergedtoprow th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedrow td,&lt;br /&gt;
.infobox.geography .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedbottomrow td,&lt;br /&gt;
.infobox.geography .mergedbottomrow th {&lt;br /&gt;
    border-top: 0;&lt;br /&gt;
    border-bottom: 1px solid #aaa;&lt;br /&gt;
    padding: 0 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .maptable td,&lt;br /&gt;
.infobox.geography .maptable th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Normal font styling for table row headers with scope=&amp;quot;row&amp;quot; tag */&lt;br /&gt;
.wikitable.plainrowheaders th[scope=row] {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Lists in data cells are always left-aligned */&lt;br /&gt;
.wikitable td ul,&lt;br /&gt;
.wikitable td ol,&lt;br /&gt;
.wikitable td dl {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
/* ...unless they also use the hlist class */&lt;br /&gt;
.toc.hlist ul,&lt;br /&gt;
#toc.hlist ul,&lt;br /&gt;
.wikitable.hlist td ul,&lt;br /&gt;
.wikitable.hlist td ol,&lt;br /&gt;
.wikitable.hlist td dl {&lt;br /&gt;
    text-align: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon for all PDF files&lt;br /&gt;
   in browsers that support these CSS selectors, like Mozilla and Opera */&lt;br /&gt;
div#content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF#&amp;quot;].external {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon anywhere the PDFlink class&lt;br /&gt;
   is used (notably Template:PDFlink). This works in IE, unlike the above. */&lt;br /&gt;
div#content span.PDFlink a,&lt;br /&gt;
div#mw_content span.PDFlink a {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */&lt;br /&gt;
div.columns-2 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
    min-width: 300px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-3 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 33.3%;&lt;br /&gt;
    min-width: 200px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-4 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 25%;&lt;br /&gt;
    min-width: 150px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-5 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 20%;&lt;br /&gt;
    min-width: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Messagebox templates */&lt;br /&gt;
.messagebox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    width: 80%;&lt;br /&gt;
    margin: 0 auto 1em auto;&lt;br /&gt;
    padding: .2em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.merge {&lt;br /&gt;
    border: 1px solid #c0b8cc;&lt;br /&gt;
    background-color: #f0e5ff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.cleanup {&lt;br /&gt;
    border: 1px solid #9f9fff;&lt;br /&gt;
    background-color: #efefff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    margin: 4px auto;&lt;br /&gt;
}&lt;br /&gt;
/* For old WikiProject banners inside banner shells. */&lt;br /&gt;
.mbox-inside .standard-talk,&lt;br /&gt;
.messagebox.nested-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: 2px 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small-talk {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
    background: #F8EABA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */&lt;br /&gt;
th.mbox-text, td.mbox-text {   /* The message body cell(s) */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 0.25em 0.9em;     /* 0.9em left/right */&lt;br /&gt;
    width: 100%;               /* Make all mboxes the same width regardless of text length */&lt;br /&gt;
}&lt;br /&gt;
td.mbox-image {                /* The left image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-imageright {           /* The right image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-empty-cell {           /* An empty narrow cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Article message box styles */&lt;br /&gt;
table.ambox {&lt;br /&gt;
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
table.ambox + table.ambox {      /* Single border between stacked boxes. */&lt;br /&gt;
    margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.ambox th.mbox-text,&lt;br /&gt;
.ambox td.mbox-text {            /* The message body cell(s) */&lt;br /&gt;
    padding: 0.25em 0.5em;       /* 0.5em left/right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-image {           /* The left image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-imageright {      /* The right image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ambox-notice {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-speedy {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;                   /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-delete {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-content {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-style {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-move {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-protection {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Image message box styles */&lt;br /&gt;
table.imbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */&lt;br /&gt;
    margin: 0 -0.5em;       /* 0.9 - 0.5 = 0.4em left/right.        */&lt;br /&gt;
    display: block;         /* Fix for webkit to force 100% width.  */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .imbox {       /* For imboxes inside other templates.  */&lt;br /&gt;
    margin: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.imbox-notice {&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-speedy {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-delete {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-content {&lt;br /&gt;
    border: 3px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-style {&lt;br /&gt;
    border: 3px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-move {&lt;br /&gt;
    border: 3px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-protection {&lt;br /&gt;
    border: 3px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-license {&lt;br /&gt;
    border: 3px solid #88a;       /* Dark gray */&lt;br /&gt;
    background: #f7f8ff;          /* Light gray */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-featured {&lt;br /&gt;
    border: 3px solid #cba135;    /* Brown-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category message box styles */&lt;br /&gt;
table.cmbox {&lt;br /&gt;
    margin: 3px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #DFE8FF;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.cmbox-notice {&lt;br /&gt;
    background: #D8E8FF;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-speedy {&lt;br /&gt;
    margin-top: 4px;&lt;br /&gt;
    margin-bottom: 4px;&lt;br /&gt;
    border: 4px solid #b22222;    /* Red */&lt;br /&gt;
    background: #FFDBDB;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-delete {&lt;br /&gt;
    background: #FFDBDB;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-content {&lt;br /&gt;
    background: #FFE7CE;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-style {&lt;br /&gt;
    background: #FFF9DB;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-move {&lt;br /&gt;
    background: #E4D8FF;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-protection {&lt;br /&gt;
    background: #EFEFE1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Other pages message box styles */&lt;br /&gt;
table.ombox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;       /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
    border: 1px solid #aaa;       /* Gray */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
    border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
    border: 1px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
    border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
    border: 2px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Talk page message box styles */&lt;br /&gt;
table.tmbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #c0c090;    /* Default &amp;quot;notice&amp;quot; gray-brown */&lt;br /&gt;
    background: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The &amp;quot;mediawiki&amp;quot; class ensures that */&lt;br /&gt;
    margin: 2px 0;               /* this declaration overrides other styles (including mbox-small above)   */&lt;br /&gt;
    width: 100%;                 /* For Safari and Opera */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .tmbox.mbox-small { /* &amp;quot;small&amp;quot; tmboxes should not be small when  */&lt;br /&gt;
    line-height: 1.5em;          /* also &amp;quot;nested&amp;quot;, so reset styles that are   */&lt;br /&gt;
    font-size: 100%;             /* set in &amp;quot;mbox-small&amp;quot; above.                */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.tmbox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-content {&lt;br /&gt;
    border: 2px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-style {&lt;br /&gt;
    border: 2px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-move {&lt;br /&gt;
    border: 2px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-protection,&lt;br /&gt;
table.tmbox-notice {&lt;br /&gt;
    border: 1px solid #c0c090;    /* Gray-brown */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disambig and set index box styles */&lt;br /&gt;
table.dmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.9em 1em;&lt;br /&gt;
    border-top: 1px solid #ccc;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer and header message box styles */&lt;br /&gt;
table.fmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;     /* Default &amp;quot;system&amp;quot; gray */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-system {&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-warning {&lt;br /&gt;
    border: 1px solid #bb7070;  /* Dark pink */&lt;br /&gt;
    background: #ffdbdb;        /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-editnotice {&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;warning&amp;quot; style fmbox messages. */&lt;br /&gt;
div.mw-warning-with-logexcerpt,&lt;br /&gt;
div.mw-lag-warn-high,&lt;br /&gt;
div.mw-cascadeprotectedwarning,&lt;br /&gt;
div#mw-protect-cascadeon,&lt;br /&gt;
div.titleblacklist-warning,&lt;br /&gt;
div.locked-warning {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #bb7070;&lt;br /&gt;
    background: #ffdbdb;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;system&amp;quot; style fmbox messages.&lt;br /&gt;
   Used in [[MediaWiki:Readonly lag]]. */&lt;br /&gt;
div.mw-lag-warn-normal,&lt;br /&gt;
div.fmbox-system {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** TABLE CLASSES **/&lt;br /&gt;
.table {&lt;br /&gt;
  border:0 solid;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  clear:none;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  display:inline-block;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  margin:5px 0;&lt;br /&gt;
  padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* make table captions bold */&lt;br /&gt;
.table &amp;gt; caption { font-weight: bold }&lt;br /&gt;
&lt;br /&gt;
/* this is a hack to add borders to IE8- */&lt;br /&gt;
.table &amp;gt; thead, .table &amp;gt; tbody { border:0 solid #aaa\0/ }&lt;br /&gt;
&lt;br /&gt;
.table tr {&lt;br /&gt;
  border:1px solid #aaa\0/;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* and this removes them for IE9+ */&lt;br /&gt;
:root .table tr { border-top-width:0; border-bottom-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :first-child { border-left:1px solid #AAA; }&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :last-child { border-right:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; caption { border-bottom:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody:first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading &amp;gt; *,&lt;br /&gt;
.table &amp;gt; thead &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
  padding:.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; td,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  padding:.25em .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table tr &amp;gt; th, .table[class*=center] tr { text-align:center; }&lt;br /&gt;
.table[class*=left] tr { text-align:left; }&lt;br /&gt;
.table[class*=right] tr { text-align:right; }&lt;br /&gt;
.table[class*=middle] tr { vertical-align:middle; }&lt;br /&gt;
.table[class*=top] tr { vertical-align:top; }&lt;br /&gt;
.table[class*=bottom] tr { vertical-align:bottom; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border:1px solid #aaa!important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th, .table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  background-color:#E7E7E7;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
  background-color:#F3F3F3;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [rowspan],&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [colspan] { border:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [rowspan],&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [colspan] { border-top-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table .line,&lt;br /&gt;
.table .line-bottom {&lt;br /&gt;
  border-bottom-width:1px!important;&lt;br /&gt;
  border-bottom-style:solid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-top {&lt;br /&gt;
  border-top-width:1px!important;&lt;br /&gt;
  border-top-style:solid;&lt;br /&gt;
  border-top-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-left {&lt;br /&gt;
  border-left-width:1px!important;&lt;br /&gt;
  border-left-style:solid;&lt;br /&gt;
  border-left-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-right {&lt;br /&gt;
  border-right-width:1px!important;&lt;br /&gt;
  border-right-style:solid;&lt;br /&gt;
  border-right-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table table {&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dl+table.table {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** STDT table classes **/&lt;br /&gt;
/* any */&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#888 !important;&lt;br /&gt;
    border-color:#6D6D6D !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.any &amp;gt; th {&lt;br /&gt;
    background-color:#CCC;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.any:nth-child(odd) {&lt;br /&gt;
    background-color:#EEE;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* career */&lt;br /&gt;
  .table.career { width: auto; min-width: 68%; max-width:2400px; display:table; text-align:center; vertical-align:middle;}&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-image:linear-gradient(to top, #E7E7E7, #EFEFEF);&lt;br /&gt;
    border-color:#AAA; !important;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; thead &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.career &amp;gt; th {&lt;br /&gt;
    background-color:#F3F3F3; !important;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.career:nth-child(odd) {&lt;br /&gt;
    background-color:#F3F3F3;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* guardian */&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#72C1D9 !important;&lt;br /&gt;
    border-color:#5B9AAE !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.guardian &amp;gt; th {&lt;br /&gt;
    background-color:#B9E0EC;&lt;br /&gt;
    border-color:#94B3BD;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.guardian:nth-child(odd) {&lt;br /&gt;
    background-color:#EAF6F9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* mesmer */&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#B679D5 !important;&lt;br /&gt;
    border-color:#9261AA !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.mesmer &amp;gt; th {&lt;br /&gt;
    background-color:#DBBCEA;&lt;br /&gt;
    border-color:#AF96BB;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.mesmer:nth-child(odd) {&lt;br /&gt;
    background-color:#F4EBF9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/** Restore sort icons for sortable table headers **/&lt;br /&gt;
/* These are inserted as CSS background-image, which clashes with our fancy gradient overlays */&lt;br /&gt;
table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  padding:0.5em;&lt;br /&gt;
  padding-right:21px;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* And finally jquery overlays for tables that also use .table classes (two background images) */&lt;br /&gt;
table.table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* These mbox-small classes must be placed after all other&lt;br /&gt;
   ambox/tmbox/ombox etc classes. &amp;quot;body.mediawiki&amp;quot; is so&lt;br /&gt;
   they override &amp;quot;table.ambox + table.ambox&amp;quot; above. */&lt;br /&gt;
body.mediawiki table.mbox-small {   /* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 0 4px 1em;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki table.mbox-small-left {   /* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 1em 4px 0;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for compact ambox */&lt;br /&gt;
/* Hide the images */&lt;br /&gt;
.compact-ambox table .mbox-image,&lt;br /&gt;
.compact-ambox table .mbox-imageright,&lt;br /&gt;
.compact-ambox table .mbox-empty-cell {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Remove borders, backgrounds, padding, etc. */&lt;br /&gt;
.compact-ambox table.ambox {&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    margin: 0 0 0 1.6em !important;&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki .compact-ambox table.mbox-small-left {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Style the text cell as a list item and remove its padding */&lt;br /&gt;
.compact-ambox table .mbox-text {&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
.compact-ambox table .mbox-text-span {&lt;br /&gt;
    display: list-item;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style-type: square;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/MonoBook/bullet.gif);&lt;br /&gt;
}&lt;br /&gt;
.skin-vector .compact-ambox table .mbox-text-span {&lt;br /&gt;
    list-style-type: disc;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/Vector/images/bullet-icon.png)&lt;br /&gt;
}&lt;br /&gt;
/* Allow for hiding text in compact form */&lt;br /&gt;
.compact-ambox .hide-when-compact {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove default styles for [[MediaWiki:Noarticletext]]. */&lt;br /&gt;
div.noarticletext {&lt;br /&gt;
    border: none;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide (formatting) elements from screen, but not from screenreaders */&lt;br /&gt;
.visualhide {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: -10000px;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
    height: 1px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bold save button */&lt;br /&gt;
#wpSave {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */&lt;br /&gt;
.hiddenStructure {&lt;br /&gt;
    display: inline !important;&lt;br /&gt;
    color: #f00;&lt;br /&gt;
    background-color: #0f0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* suppress missing interwiki image links where #ifexist cannot&lt;br /&gt;
   be used due to high number of requests see .hidden-redlink on&lt;br /&gt;
   [[m:MediaWiki:Common.css]] */&lt;br /&gt;
.check-icon a.new {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Removes underlines from certain links */&lt;br /&gt;
.nounderlines a,&lt;br /&gt;
.IPA a:link, .IPA a:visited {&lt;br /&gt;
    text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Standard Navigationsleisten, aka box hiding thingy&lt;br /&gt;
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */&lt;br /&gt;
div.NavFrame {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame + div.NavFrame {&lt;br /&gt;
    border-top-style: none;&lt;br /&gt;
    border-top-style: hidden;&lt;br /&gt;
}&lt;br /&gt;
div.NavPic {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame div.NavHead {&lt;br /&gt;
    line-height: 1.6em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background-color: #ccf;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame p,&lt;br /&gt;
div.NavFrame div.NavContent,&lt;br /&gt;
div.NavFrame div.NavContent p {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
div.NavEnd {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1px;&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
a.NavToggle {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    right: 3px;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hatnotes and disambiguation notices */&lt;br /&gt;
.hatnote {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.hatnote i {&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote + div.hatnote {&lt;br /&gt;
    margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow transcluded pages to display in lists rather than a table.&lt;br /&gt;
   Compatible in Firefox; incompatible in IE6. */&lt;br /&gt;
.listify td    { display: list-item; }&lt;br /&gt;
.listify tr    { display: block; }&lt;br /&gt;
.listify table { display: block; }&lt;br /&gt;
&lt;br /&gt;
.lirev ol,.lirev ul{display:flex;flex-direction:column-reverse;list-style-type:disc;width:240px}&lt;br /&gt;
center &amp;gt; ul {list-style:none}&lt;br /&gt;
&lt;br /&gt;
/* Geographical coordinates defaults. See [[Template:Coord/link]]&lt;br /&gt;
   for how these are used. The classes &amp;quot;geo&amp;quot;, &amp;quot;longitude&amp;quot;, and&lt;br /&gt;
   &amp;quot;latitude&amp;quot; are used by the [[Geo microformat]]. */&lt;br /&gt;
.geo-default, .geo-dms, .geo-dec  { display: inline; }&lt;br /&gt;
.geo-nondefault, .geo-multi-punct { display: none; }&lt;br /&gt;
.longitude, .latitude             { white-space: nowrap; }&lt;br /&gt;
&lt;br /&gt;
/* When &amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt; is used on the table of contents,&lt;br /&gt;
   the ToC will display without numbers */&lt;br /&gt;
.nonumtoc .tocnumber {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.nonumtoc #toc ul,&lt;br /&gt;
.nonumtoc .toc ul {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: .3em 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.hlist.nonumtoc #toc ul ul,&lt;br /&gt;
.hlist.nonumtoc .toc ul ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow limiting of which header levels are shown in a TOC;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;, for instance, will limit to&lt;br /&gt;
   showing ==headings== and ===headings=== but no further&lt;br /&gt;
   (as long as there are no =headings= on the page, which&lt;br /&gt;
   there shouldn&#039;t be according to the MoS). */&lt;br /&gt;
.toclimit-2 .toclevel-1 ul,&lt;br /&gt;
.toclimit-3 .toclevel-2 ul,&lt;br /&gt;
.toclimit-4 .toclevel-3 ul,&lt;br /&gt;
.toclimit-5 .toclevel-4 ul,&lt;br /&gt;
.toclimit-6 .toclevel-5 ul,&lt;br /&gt;
.toclimit-7 .toclevel-6 ul {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for Template:Quote */&lt;br /&gt;
blockquote.templatequote {&lt;br /&gt;
     margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
blockquote.templatequote div.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* User block messages */&lt;br /&gt;
div.user-block {&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    border: 1px solid #A9A9A9;&lt;br /&gt;
    background-color: #FFEFD5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent line breaks in silly places:&lt;br /&gt;
   1) Where desired&lt;br /&gt;
   2) Links when we don&#039;t want them to&lt;br /&gt;
   3) Bold &amp;quot;links&amp;quot; to the page itself&lt;br /&gt;
   4) Ref tags with group names &amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt; --&amp;gt; &amp;quot;[Note 1]&amp;quot; */&lt;br /&gt;
.nowrap,&lt;br /&gt;
.nowraplinks a,&lt;br /&gt;
.nowraplinks .selflink,&lt;br /&gt;
sup.reference a {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
/* But allow wrapping where desired: */&lt;br /&gt;
.wrap,&lt;br /&gt;
.wraplinks a {&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For template documentation */&lt;br /&gt;
.template-documentation {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 1em 0 0 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #ecfcf4;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Inline divs in ImageMaps (code borrowed from de.wiki) */&lt;br /&gt;
.imagemap-inline div {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Increase the height of the image upload box */&lt;br /&gt;
#wpUploadDescription {&lt;br /&gt;
    height: 13em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    margin: 1px;&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
img.thumbborder {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px !important;&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    background-color: #f9f9f9 !important;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbcaption {&lt;br /&gt;
    color: #252525 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Minimum thumb width */&lt;br /&gt;
.thumbinner {&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Makes the background of a framed image white instead of gray.&lt;br /&gt;
   Only visible with transparent images. */&lt;br /&gt;
div.thumb .thumbimage {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The backgrounds for galleries. */&lt;br /&gt;
div#content .gallerybox div.thumb {&lt;br /&gt;
    /* Light gray padding */&lt;br /&gt;
    background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
/* Put a chequered background behind images, only visible if they have transparency.&lt;br /&gt;
   &#039;.filehistory a img&#039; and &#039;#file img:hover&#039; are handled by MediaWiki core (as of 1.19) */&lt;br /&gt;
.gallerybox .thumb img {&lt;br /&gt;
    background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;&lt;br /&gt;
}&lt;br /&gt;
/* But not on articles, user pages, portals or with opt-out. */&lt;br /&gt;
.ns-0 .gallerybox .thumb img,&lt;br /&gt;
.ns-2 .gallerybox .thumb img,&lt;br /&gt;
.ns-100 .gallerybox .thumb img,&lt;br /&gt;
.nochecker .gallerybox .thumb img {&lt;br /&gt;
    background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating boxes from overlapping any category listings,&lt;br /&gt;
   file histories, edit previews, and edit [Show changes] views. */&lt;br /&gt;
#mw-subcategories, #mw-pages, #mw-category-media,&lt;br /&gt;
#filehistory, #wikiPreview, #wikiDiff {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {&lt;br /&gt;
    display: block;   /* Override inline block mode */&lt;br /&gt;
    margin-bottom: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;     /* Clear any info boxes that stick out */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;     /* Prevents margin collapsing */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Selectively hide headers in WikiProject banners */&lt;br /&gt;
.wpb .wpb-header             { display: none; }&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: block; }     /* for IE */&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */&lt;br /&gt;
.wpbs-inner .wpb-outside     { display: none; }      /* hide things that should only display outside shells */&lt;br /&gt;
&lt;br /&gt;
/* Styling for Abuse Filter tags */&lt;br /&gt;
.mw-tag-markers {&lt;br /&gt;
    font-family:sans-serif;&lt;br /&gt;
    font-style:italic;&lt;br /&gt;
    font-size:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide stuff meant for accounts with special permissions. Made visible again in&lt;br /&gt;
   [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],&lt;br /&gt;
   [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */&lt;br /&gt;
.sysop-show,&lt;br /&gt;
.accountcreator-show,&lt;br /&gt;
.templateeditor-show,&lt;br /&gt;
.autoconfirmed-show {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Hide the redlink generated by {{Editnotice}},&lt;br /&gt;
 * this overrides the &amp;quot;.sysop-show { display: none; }&amp;quot; above that applies&lt;br /&gt;
 * to the same link as well.&lt;br /&gt;
 *&lt;br /&gt;
 * See [[Phabricator:45013]].&lt;br /&gt;
 */&lt;br /&gt;
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink, .mw-ve-editNotice .editnotice-redlink {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove bullets when there are multiple edit page warnings */&lt;br /&gt;
ul.permissions-errors &amp;gt; li {&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
}&lt;br /&gt;
ul.permissions-errors {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No linewrap on the labels of the login/signup page */&lt;br /&gt;
body.page-Special_UserLogin .mw-label label,&lt;br /&gt;
body.page-Special_UserLogin_signup .mw-label label {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pie chart test: Transparent borders */&lt;br /&gt;
.transborder {&lt;br /&gt;
    border: solid transparent;&lt;br /&gt;
}&lt;br /&gt;
* html .transborder {  /* IE6 */&lt;br /&gt;
    border: solid #000001;&lt;br /&gt;
    filter: chroma(color=#000001);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for updated markers on watchlist, history and recent/related changes.&lt;br /&gt;
   Bullets are handled in skin-specific stylesheets. */&lt;br /&gt;
.updatedmarker {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #006400;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist .mw-changeslist-line-watched .mw-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist #mw-watchlist-resetbutton {&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
.mw-enhanced-watched .mw-enhanced-rc-time {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generic class for Times-based serif, texhtml class for inline math */&lt;br /&gt;
.times-serif,&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    font-family: &amp;quot;Nimbus Roman No9 L&amp;quot;, &amp;quot;Times New Roman&amp;quot;, Times, serif;&lt;br /&gt;
    font-size: 118%;&lt;br /&gt;
    line-height: 0.5;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml span.texhtml {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Force tabular and lining display for digits and texhtml */&lt;br /&gt;
.digits,&lt;br /&gt;
.texhtml {&lt;br /&gt;
    -moz-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    -webkit-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-variant-numeric: lining-nums tabular-nums;&lt;br /&gt;
    font-kerning: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display tabs with 4 spaces, see [[Phabricator:59824]] and [[Phabricator:59825]] */&lt;br /&gt;
div.mw-geshi div,&lt;br /&gt;
div.mw-geshi div pre,&lt;br /&gt;
span.mw-geshi,&lt;br /&gt;
pre.source-css,&lt;br /&gt;
pre.source-javascript,&lt;br /&gt;
pre.source-lua {&lt;br /&gt;
    -moz-tab-size: 4;&lt;br /&gt;
    -o-tab-size: 4;&lt;br /&gt;
    tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix styling of transcluded prefindex tables */&lt;br /&gt;
table#mw-prefixindex-list-table,&lt;br /&gt;
table#mw-prefixindex-nav-table {&lt;br /&gt;
    width: 98%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For portals, added 2011-12-07 -bv&lt;br /&gt;
   On wide screens, show these as two columns&lt;br /&gt;
   On narrow and mobile screens, let them collapse into a single column */&lt;br /&gt;
.portal-column-left {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 49%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 60%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 39%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-extra-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 70%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-extra-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 29%;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 800px) {&lt;br /&gt;
    /* Decouple the columns on narrow screens */&lt;br /&gt;
    .portal-column-left,&lt;br /&gt;
    .portal-column-right,&lt;br /&gt;
    .portal-column-left-wide,&lt;br /&gt;
    .portal-column-right-narrow,&lt;br /&gt;
    .portal-column-left-extra-wide,&lt;br /&gt;
    .portal-column-right-extra-narrow {&lt;br /&gt;
        float: inherit;&lt;br /&gt;
        width: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For announcements */&lt;br /&gt;
#bodyContent .letterhead {&lt;br /&gt;
    background-image:url(&#039;//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png&#039;);&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    padding: 2em;&lt;br /&gt;
    background-color: #faf9f2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tree style lists */&lt;br /&gt;
.treeview ul {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
}&lt;br /&gt;
.treeview li {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    zoom: 1; /* BE KIND TO IE6 */;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png&amp;quot;) no-repeat 0 -2981px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 20px;&lt;br /&gt;
    text-indent: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li.lastline {&lt;br /&gt;
    background-position: 0 -5971px&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: -1px;&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul &amp;gt; li:first-child {&lt;br /&gt;
    background-position: 0 9px&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* hidden sortkey for tablesorter */&lt;br /&gt;
td .sortkey,&lt;br /&gt;
th .sortkey {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make it possible to hide checkboxes in &amp;lt;inputbox&amp;gt; */&lt;br /&gt;
.inputbox-hidecheckboxes form .inputbox-element {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */&lt;br /&gt;
.k-player .k-attribution {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Move &#039;play&#039; button of video player to bottom left corner */&lt;br /&gt;
.PopUpMediaTransform a .play-btn-large {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    right: auto;&lt;br /&gt;
    bottom: 0;&lt;br /&gt;
    left: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Workaround to keep editnotices readable in VE view.&lt;br /&gt;
   Long term, editnotices should become a core feature so that they can be designed responsive. */&lt;br /&gt;
.mw-ve-editNotice .mbox-image {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Movies */&lt;br /&gt;
.actor-image a img, .gadget-image a img {&lt;br /&gt;
  border: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.top-align td, .actor-appearances-table td, .gadget-appearances-table td {&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.actor-appearances-table .thumb, .gadget-appearances-table .thumb {&lt;br /&gt;
  margin-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Margins for &amp;lt;ol&amp;gt; and &amp;lt;ul&amp;gt; */&lt;br /&gt;
div#content ol, div#content ul,&lt;br /&gt;
div#mw_content ol, div#mw_content ul {&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* actortable class for skinning actor tables */&lt;br /&gt;
&lt;br /&gt;
table.actortable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th, table.actortable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.nospacing p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a,table.headerlink th a.new {&lt;br /&gt;
  color: #FFFFFF;&lt;br /&gt;
  border-bottom: 1px dotted #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a:hover {&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th, table.chartable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* wikitable/prettytable class for skinning normal tables */&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.prettytable {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable.seasontable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5bbd53;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.volumetable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #647dd1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.movietable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #A153D2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.ovatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #f08f31;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.dramatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #67A56E;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.bodybuildingcompetition th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5E7EAF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.gadgettable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #FF9900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.collectibletable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #69C3A5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* JS Tab System, Jacked and Hacked from the jsprefs in monobook/main.css -Dantman */&lt;br /&gt;
.tabtoc {&lt;br /&gt;
	margin: 0 !important;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	color: #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	margin: 1px -2px 1px 2px;&lt;br /&gt;
	float: left;&lt;br /&gt;
	padding: 2px 0 3px 0;&lt;br /&gt;
	border: none;&lt;br /&gt;
	top:4px;&lt;br /&gt;
	left:-2px;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	list-style-type: none;&lt;br /&gt;
	list-style-image: none;&lt;br /&gt;
	z-index: 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected {&lt;br /&gt;
	border-radius: 5px 5px 0 0;&lt;br /&gt;
	-webkit-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-moz-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-ms-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-o-border-radius: 5px 5px 0 0;&lt;br /&gt;
	top: 2px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	background-color: #f9f9f9;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	padding-top: 2px;&lt;br /&gt;
	margin-right: -3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc &amp;gt;; li.selected {&lt;br /&gt;
	top: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc a,&lt;br /&gt;
.tabtoc a:active {&lt;br /&gt;
	display: block;&lt;br /&gt;
	color: #000;&lt;br /&gt;
	padding: 0 .7em;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected a {&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabcontainer {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	padding: 7px;&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tabbox {&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin-right: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tab {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection table, .tabsection .tab {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.mainTab {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2925</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2925"/>
		<updated>2025-02-24T18:17:58Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2924</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2924"/>
		<updated>2025-02-24T18:16:41Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;pbccdn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Таблица для десктопной версии --&amp;gt;&lt;br /&gt;
  &amp;lt;table style=&amp;quot;width:100%; border-collapse: collapse; border-spacing: 0;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Левая колонка (260px ширина) --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;width:260px; vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Featured Article&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Featured article}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Random Featured Picture&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Random featured picture}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Центральная колонка --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div id=&amp;quot;hpedialogo&amp;quot;&amp;gt;[[File:Pbclogo-white.png|120px|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Intro}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            NAVIGATION&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; padding: 0;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Nav}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            In the News&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/In the news}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Правая колонка (260px ширина) --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;width:260px; vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Featured Movie&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Featured movie}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Welcome back!&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            Also check out the rest of the [[Special:ContributionScores|PBCpedians]]!&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2923</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2923"/>
		<updated>2025-02-24T18:07:27Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;pbccdn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Использование таблицы для гарантированной трехколоночной структуры --&amp;gt;&lt;br /&gt;
  &amp;lt;table style=&amp;quot;width:100%; border-collapse: collapse;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Левая колонка (260px ширина) --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;width:260px; vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Featured Article --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Featured Article&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Featured article}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;!-- Random Featured Picture --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Random Featured Picture&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Random featured picture}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Центральная колонка --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Intro --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div id=&amp;quot;hpedialogo&amp;quot;&amp;gt;[[File:Pbclogo-white.png|120px|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Intro}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;!-- Navigation --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            NAVIGATION&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; padding: 0;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Nav}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;!-- In the News --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            In the News&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/In the news}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Правая колонка (260px ширина) --&amp;gt;&lt;br /&gt;
      &amp;lt;td style=&amp;quot;width:260px; vertical-align:top; padding:5px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Featured Movie --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Featured Movie&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            {{:Main Page/Featured movie}}&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;!-- Welcome Back --&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-card pbccdn-mb-3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-header&amp;quot; style=&amp;quot;background-color: #5E7EAF; color: white; text-align: center; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
            Welcome back!&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div class=&amp;quot;pbccdn-card-body&amp;quot; style=&amp;quot;background-color: #FAFAFA; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
            Also check out the rest of the [[Special:ContributionScores|PBCpedians]]!&lt;br /&gt;
          &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2922</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=MediaWiki:Common.css&amp;diff=2922"/>
		<updated>2025-02-24T18:00:18Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * MediaWiki upgrade note:&lt;br /&gt;
 * On the server side, the following style files are modified for PBC:&lt;br /&gt;
 *&lt;br /&gt;
 * resources/src/mediawiki.skinning/elements.css&lt;br /&gt;
 * skins/Vector/variables.less&lt;br /&gt;
 *&lt;br /&gt;
 * Changed values are tagged with PBC comments.&lt;br /&gt;
 *&lt;br /&gt;
 * The following images are modified:&lt;br /&gt;
 *&lt;br /&gt;
 * skins/Vector/images/tab-break.png&lt;br /&gt;
 * skins/Vector/images/tab-normal-fade.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-ltr-icon.svg&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.png&lt;br /&gt;
 * skins/Vector/images/external-link-rtl-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon.png&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.svg&lt;br /&gt;
 * skins/Vector/images/unwatch-icon-hl.png&lt;br /&gt;
 * skins/Vector/images/watch-icon.svg&lt;br /&gt;
 * skins/Vector/images/watch-icon.png&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* Default styling for HTML elements */&lt;br /&gt;
#siteSub { display:block; font-weight:normal; font-size:small;}&lt;br /&gt;
dfn {&lt;br /&gt;
    font-style: inherit;  /* Reset default styling for &amp;lt;dfn&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wbr { display: inline-block; }&lt;br /&gt;
&lt;br /&gt;
#bodyContent p {&lt;br /&gt;
    font-size: 0.975em;&lt;br /&gt;
    margin-top: 0px; /* Отступ сверху */&lt;br /&gt;
    margin-bottom: 1px; /* Отступ снизу */&lt;br /&gt;
    line-height: 1.5em; /*Интерлиньяж (расстояние между строк)*/&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor link colors */&lt;br /&gt;
.wikiEditor-ui-tabs div a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a,&lt;br /&gt;
.wikiEditor-ui-toolbar .tabs span.tab a:visited {&lt;br /&gt;
  color: #d46007;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
q {&lt;br /&gt;
    quotes: &#039;&amp;quot;&#039; &#039;&amp;quot;&#039; &amp;quot;&#039;&amp;quot; &amp;quot;&#039;&amp;quot;;  /* Straight quote marks for &amp;lt;q&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
blockquote {&lt;br /&gt;
	overflow: hidden;  /* Avoid collision of background with floating elements */&lt;br /&gt;
}&lt;br /&gt;
strong.selflink {&lt;br /&gt;
    font-weight: 700;  /* Prevent the &#039;double bold&#039; bug in Firefox when using DirectWrite */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li {&lt;br /&gt;
     list-style-position: inside;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стили для переопределения конфликтующих правил */&lt;br /&gt;
.pbccdn .pbccdn-row {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap !important;&lt;br /&gt;
  margin-right: -0.75rem !important;&lt;br /&gt;
  margin-left: -0.75rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-3 {&lt;br /&gt;
  flex: 0 0 25% !important;&lt;br /&gt;
  max-width: 25% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-lg-6 {&lt;br /&gt;
  flex: 0 0 50% !important;&lt;br /&gt;
  max-width: 50% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pbccdn .pbccdn-col-md-12 {&lt;br /&gt;
  flex: 0 0 100% !important;&lt;br /&gt;
  max-width: 100% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Сброс некоторых стилей MediaWiki, которые могут конфликтовать */&lt;br /&gt;
.pbccdn .pbccdn-card {&lt;br /&gt;
  width: auto !important;&lt;br /&gt;
  float: none !important;&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-direction: column !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Принудительное применение отступов */&lt;br /&gt;
.pbccdn .pbccdn-mb-4 {&lt;br /&gt;
  margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Стиль для отладки - добавляет рамки вокруг колонок */&lt;br /&gt;
.debug .pbccdn-col-lg-3,&lt;br /&gt;
.debug .pbccdn-col-lg-6,&lt;br /&gt;
.debug .pbccdn-col-md-12 {&lt;br /&gt;
  border: 1px dashed red !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Consistent size for &amp;lt;sub&amp;gt; and &amp;lt;sup&amp;gt; */&lt;br /&gt;
.mw-body sub,&lt;br /&gt;
.mw-body sup,&lt;br /&gt;
span.careerstatusactive a { color: green; }&lt;br /&gt;
span.careerstatusretired a { color: red; }&lt;br /&gt;
&lt;br /&gt;
span.reference /* for Parsoid */ {&lt;br /&gt;
    font-size: 80%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mwe-popups {&lt;br /&gt;
box-shadow: 0 45px 70px -20px rgba(0,0,0,0.3), 0px 0px 1px rgba(0,0,0,0.5);&lt;br /&gt;
border:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main page fixes */&lt;br /&gt;
#interwiki-completelist {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #ca-delete {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #mp-topbanner {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Edit window toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
    height: 22px;&lt;br /&gt;
    margin-bottom: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* WikiEditor CSS for #wpTextbox1 is not loaded on .css/.js pages, so load here. [[phab:T97299]] */&lt;br /&gt;
.wikiEditor-ui-text #wpTextbox1 {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    resize: vertical;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide charinsert base for those not using the gadget */&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* People &amp;amp; gadget */&lt;br /&gt;
&lt;br /&gt;
.people ul, .gadget ul {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  font-size: 0.95em;&lt;br /&gt;
  line-height: 1.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.people .squeezed ul, .gadget .squeezed ul {&lt;br /&gt;
  line-height: 1.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#content .people ul, #content .gadget ul {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgallerybox {&lt;br /&gt;
                text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.modelgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 244px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
.manifestmenlist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.manifestmenlistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelist {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pumpingmusclelistblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                width : 145px;&lt;br /&gt;
                height: 261px;&lt;br /&gt;
                margin-bottom: 0.1em;&lt;br /&gt;
                margin-top: 0.1em;&lt;br /&gt;
                margin-right: 0.1em;&lt;br /&gt;
                margin-left: 0.1em;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.photographygallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mmagallerybox {&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        overflow: hidden;&lt;br /&gt;
        margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.photographygalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 262px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.mmagalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.sitemodellistgalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 285px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.bodybuildergalleryblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 268px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
.modelboxdsblock {&lt;br /&gt;
                display : inline-block;&lt;br /&gt;
                height: 267px;&lt;br /&gt;
                margin: 0 -4px 2px 0;&lt;br /&gt;
                vertical-align: top;&lt;br /&gt;
                text-align: center;&lt;br /&gt;
                line-height: normal;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
/* Highlight data points in the info action if specified in the URL */&lt;br /&gt;
body.action-info :target {&lt;br /&gt;
    background: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make the list of references smaller */&lt;br /&gt;
ol.references,&lt;br /&gt;
div.reflist,&lt;br /&gt;
div.refbegin {&lt;br /&gt;
    font-size: 90%;            /* Default font-size */&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.refbegin-100 {&lt;br /&gt;
    font-size: 100%;           /* Option for normal fontsize in {{refbegin}} */&lt;br /&gt;
}&lt;br /&gt;
div.reflist ol.references {&lt;br /&gt;
    font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
    list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight clicked reference in blue to help navigation */&lt;br /&gt;
span.citation:target {&lt;br /&gt;
    background-color: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure refs in table headers and the like aren&#039;t bold or italic */&lt;br /&gt;
sup.reference {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow hidden ref errors to be shown by user CSS */&lt;br /&gt;
span.brokenref {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */&lt;br /&gt;
.citation {&lt;br /&gt;
    word-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For linked citation numbers and document IDs, where&lt;br /&gt;
   the number need not be shown on a screen or a handheld,&lt;br /&gt;
   but should be included in the printed version */&lt;br /&gt;
@media screen, handheld {&lt;br /&gt;
    .citation .printonly {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
div.columns {&lt;br /&gt;
    margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
div.columns dl,&lt;br /&gt;
div.columns ol,&lt;br /&gt;
div.columns ul {&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid elements from breaking between columns */&lt;br /&gt;
.nocolbreak,&lt;br /&gt;
div.columns li,&lt;br /&gt;
div.columns dd dd {&lt;br /&gt;
    -webkit-column-break-inside: avoid;&lt;br /&gt;
    page-break-inside: avoid;&lt;br /&gt;
    break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */&lt;br /&gt;
.flowlist ul {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist ol {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 3.2em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist dl {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for horizontal lists (separator following item).&lt;br /&gt;
   IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].&lt;br /&gt;
   @source mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
   @revision 6 (2014-05-09)&lt;br /&gt;
   @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling the parameter fields in [[Template:Information]] and related templates&lt;br /&gt;
   also here (besides on [[MediaWiki:Filepage.css]]) to ensure proper preview&lt;br /&gt;
   on other pages than those in the file namespace */&lt;br /&gt;
.fileinfo-paramfield {&lt;br /&gt;
 background: #ccf;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 text-align: right;&lt;br /&gt;
 /* @noflip */&lt;br /&gt;
 padding-right: 0.4em;&lt;br /&gt;
 width: 15%;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
    content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
    content: &amp;quot; · &amp;quot;;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd.hlist-last-child:after,&lt;br /&gt;
.hlist dt.hlist-last-child:after,&lt;br /&gt;
.hlist li.hlist-last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.filmographyblock { &lt;br /&gt;
    width: 60%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.filmographydivminiblock { &lt;br /&gt;
    width: 100%; &lt;br /&gt;
    position: relative;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    padding: 0px;&lt;br /&gt;
    padding-right: 0px; &lt;br /&gt;
    border: 0; &lt;br /&gt;
    margin-left:auto;&lt;br /&gt;
    margin-right:auto;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,&lt;br /&gt;
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,&lt;br /&gt;
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
    counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
    counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
    content: &amp;quot; &amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Unbulleted lists */&lt;br /&gt;
.plainlist ol,&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
    line-height: inherit;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.plainlist ol li,&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default style for navigation boxes */&lt;br /&gt;
.navbox {                     /* Navbox container style */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: auto;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
    padding: 0.25em 1em;      /* Title, group and above/below styles */&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
th.navbox-group {             /* Group style */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    background: #fdfdfd;      /* Background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-list {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    border-color: #fdfdfd;    /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox th,&lt;br /&gt;
.navbox-title {&lt;br /&gt;
    background: #ccccff;      /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
th.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
    background: #ddddff;      /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
    background: #e6e6ff;      /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-even {&lt;br /&gt;
    background: #f7f7f7;      /* Even row striping */&lt;br /&gt;
}&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
    background: transparent;  /* Odd row striping */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */&lt;br /&gt;
    margin-top: -1px;          /* (doesn&#039;t work for IE6, but that&#039;s okay)       */&lt;br /&gt;
}&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
    padding: 0.125em 0;       /* Adjust hlist padding in navboxes */&lt;br /&gt;
}&lt;br /&gt;
ol + table.navbox,&lt;br /&gt;
ul + table.navbox {&lt;br /&gt;
    margin-top: 1em;        /* Prevent lists from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.episode {&lt;br /&gt;
  /*margin-left: 4px;*/&lt;br /&gt;
  line-height: 15.5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.episode th, .episode td {&lt;br /&gt;
  padding-top: 3px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default styling for Navbar template */&lt;br /&gt;
.navbar {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.navbar ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
.mw-body-content .navbar ul {&lt;br /&gt;
    line-height: 1em;&lt;br /&gt;
}&lt;br /&gt;
.navbar li {&lt;br /&gt;
    word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
.navbar.mini li span {&lt;br /&gt;
  font-variant: small-caps;&lt;br /&gt;
}&lt;br /&gt;
/* Navbar styling when nested in infobox and navbox */&lt;br /&gt;
.infobox .navbar {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &#039;show&#039;/&#039;hide&#039; buttons created dynamically by the CollapsibleTables javascript&lt;br /&gt;
   in [[MediaWiki:Common.js]] are styled here so they can be customised. */&lt;br /&gt;
.collapseButton {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
/* In navboxes, the show/hide button balances the v·d·e links&lt;br /&gt;
   from [[Template:Navbar]], so they need to be the same width. */&lt;br /&gt;
.navbox .collapseButton {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for JQuery makeCollapsible, matching that of collapseButton */&lt;br /&gt;
.mw-collapsible-toggle {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox .mw-collapsible-toggle {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
/* Infobox template style */&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 900px;&lt;br /&gt;
        text-align: center;&lt;br /&gt;
        display:flex;&lt;br /&gt;
        justify-content:center;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.countrydata td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.countrydata &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew {&lt;br /&gt;
        vertical-align:top;&lt;br /&gt;
	background: #F9F9F9;&lt;br /&gt;
	width: 260px;&lt;br /&gt;
	float: left;&lt;br /&gt;
        clear: left;&lt;br /&gt;
	margin: 0em 0.5em 0.5em 0em;&lt;br /&gt;
	border: 1px solid black;&lt;br /&gt;
	padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; div {&lt;br /&gt;
    background-color: rgb(41, 43, 46); &lt;br /&gt;
    border: 2px solid inherit; &lt;br /&gt;
    border-radius: 5px; &lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.5px 7px;&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber.tabberlive {&lt;br /&gt;
    background-color: rgba(0, 0, 0, 0); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infoboxnew td * ul.tabbernav {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew td &amp;gt; .tabber .tabbertab {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew .section {&lt;br /&gt;
	background: #C0DFFF;&lt;br /&gt;
	color: black;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 3px;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew tr {&lt;br /&gt;
	vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnew &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.1em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oddrowsgray tr:nth-child(odd) {&lt;br /&gt;
	background-color: #ededed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription1,&lt;br /&gt;
.infoboxdescription2,&lt;br /&gt;
.infoboxdescription3,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    padding: 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname1,&lt;br /&gt;
.infoboxdetails1,&lt;br /&gt;
.infoboxdescription1 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#657D91), color-stop(100%,#596F80)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname2,&lt;br /&gt;
.infoboxdetails2,&lt;br /&gt;
.infoboxdescription2 {&lt;br /&gt;
    background: #d2801e; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#d2801e), color-stop(100%,#653f03)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #d2801e 0%, #653f03 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxname3,&lt;br /&gt;
.infoboxdetails3,&lt;br /&gt;
.infoboxdescription3 {&lt;br /&gt;
    background: #657D91; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#292821), color-stop(100%,#292821)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #657D91 0%, #596F80 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #657D91 0%, #596F80 100%); &lt;br /&gt;
    color: #FFFFFF; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamebiobox,&lt;br /&gt;
.infoboxdetailsbiobox,&lt;br /&gt;
.infoboxdescriptionbiobox {&lt;br /&gt;
    background: #824d1f; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #657D91 0%, #596F80 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#657D91), color-stop(100%,#292821)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #657D91 0%,#596F80 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #657D91 0%,#596F80 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #657D91 0%,#596F80 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&amp;quot;#657D91&amp;quot;, endColorstr=&amp;quot;#596F80&amp;quot;,GradientType=0 ); /* IE6-9 */&lt;br /&gt;
    color: #F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamenv,&lt;br /&gt;
.infoboxdetailsnv {&lt;br /&gt;
    background: #55B784; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#55B784), color-stop(100%,#001E0E)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #55B784 0%, #001E0E 100%); &lt;br /&gt;
    color: ##F9F9F9; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxnamefilmtv,&lt;br /&gt;
.infoboxdetailsfilmtv {&lt;br /&gt;
    background: #D1E6F4; &lt;br /&gt;
    background-image: -moz-linear-gradient(center top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -webkit-gradient(linear, center top, left bottom, color-stop(0%,#D1E6F4), color-stop(100%,#17405C)); &lt;br /&gt;
    background-image: -webkit-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -o-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: -ms-linear-gradient(top, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    background-image: linear-gradient(to bottom, #D1E6F4 0%, #17405C 100%); &lt;br /&gt;
    color: #000000; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Collapsing sections in infoboxes */&lt;br /&gt;
.section-collapse {&lt;br /&gt;
    border-color: #ffffff;&lt;br /&gt;
    border-style: solid;&lt;br /&gt;
    border-width: 2px 2px 0 0;&lt;br /&gt;
    content: &amp;quot;&amp;quot;;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    height: 7px;&lt;br /&gt;
    margin-right: 5px;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    right: 0;&lt;br /&gt;
    top: 5px;&lt;br /&gt;
    transform: rotate(-45deg);&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
    width: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.section-collapsed {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collapsed-icon {&lt;br /&gt;
   margin-top: -2px;&lt;br /&gt;
   transform: rotate(135deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoboxscene {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxsceneinline {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxepisodelist {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 1 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetition {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox .image_wrapper {&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:10px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after,&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.infobox::after,&lt;br /&gt;
div.nav .box::after { bottom:-4px; }&lt;br /&gt;
&lt;br /&gt;
div.infobox .heading::after,&lt;br /&gt;
div.nav .heading::after,&lt;br /&gt;
div.infobox .subheading::after,&lt;br /&gt;
div.nav .subheading::after,&lt;br /&gt;
.table::after { bottom:-3px; }&lt;br /&gt;
&lt;br /&gt;
/** NAVI BARS **/&lt;br /&gt;
div.navi {&lt;br /&gt;
  position:relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box {&lt;br /&gt;
  filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffffff,EndColorStr=#ffeeeeee);&lt;br /&gt;
  background-image:linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-o-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-moz-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-ms-linear-gradient(top, #fff 0%, #eee 100%);&lt;br /&gt;
  background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #eee));&lt;br /&gt;
  border:1px solid #AAA;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  min-height:60px;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  margin:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi      .box { width:100%; }&lt;br /&gt;
div.navi.thin .box { width:100%; }&lt;br /&gt;
div.navi.wide .box { width:100%; }&lt;br /&gt;
div.navi.nat  .box { width:40em; }&lt;br /&gt;
div.navi.full .box { width:unset; }&lt;br /&gt;
&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
&lt;br /&gt;
div.navi .heading {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white {&lt;br /&gt;
  background-color:#888;&lt;br /&gt;
  background-image:url(&amp;quot;/images/c/cc/Infobox_header_overlay.png&amp;quot;) !important;&lt;br /&gt;
  border:1px solid rgba(0,0,0,0.25);&lt;br /&gt;
  border-bottom-width:0;&lt;br /&gt;
  font-family:Arial, sans-serif!important;&lt;br /&gt;
  font-size:1.083em;&lt;br /&gt;
  font-size-adjust:.52;&lt;br /&gt;
  font-weight:700;&lt;br /&gt;
  line-height:100%;&lt;br /&gt;
  text-align:center;&lt;br /&gt;
  margin:-1px -1px 0px;&lt;br /&gt;
  padding:.769em 0;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  z-index:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white a:hover {&lt;br /&gt;
  color:#FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .clear {&lt;br /&gt;
  height:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  content:&amp;quot;&amp;quot;;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  left:0;&lt;br /&gt;
  height:3px;&lt;br /&gt;
  background-image:url(&amp;quot;/images/4/45/Shadow_after.png&amp;quot;);&lt;br /&gt;
  background-size:100% 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .box::after,&lt;br /&gt;
div.navi .heading::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .heading-white::after {&lt;br /&gt;
  bottom:-3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .wrapper {&lt;br /&gt;
  padding: 0px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dl,&lt;br /&gt;
div.navi .wrapper.hlist &amp;gt; ul {&lt;br /&gt;
  margin:0.667em 0em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  clear:left;&lt;br /&gt;
  border-right:2px solid #999;&lt;br /&gt;
  margin:0 -2px 0 0;&lt;br /&gt;
  padding:2px 8px 2px 0px;&lt;br /&gt;
  width:25%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dd {&lt;br /&gt;
  float:left;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-left:2px solid #888;&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:2px 0px 2px 8px;&lt;br /&gt;
  width:67%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi dt, div.navi dd {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  width:100%;&lt;br /&gt;
  margin:0.667em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table th {&lt;br /&gt;
  text-align:right;&lt;br /&gt;
  border-right:2px solid #888;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi table td {&lt;br /&gt;
  padding:2px 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nav .wrapper p {&lt;br /&gt;
  margin-top:0.667em;&lt;br /&gt;
  margin-bottom:0.667em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi .selflink {&lt;br /&gt;
  font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.navi.nat  .box { width:80em; }&lt;br /&gt;
div.navi.natcat .heading { background-color:#FC6; }&lt;br /&gt;
div.navi.natcat dd,&lt;br /&gt;
div.navi.natcat dt,&lt;br /&gt;
div.navi.natcat table th { border-color:#FC6; }&lt;br /&gt;
/* natcat */&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table.natcat &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading,&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
  background-color:#FC6 !important;&lt;br /&gt;
  border-color:#CCA352 !important;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; * &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr.natcat &amp;gt; th {&lt;br /&gt;
  background-color:#FFE6B3;&lt;br /&gt;
  border-color:#CCB88F;&lt;br /&gt;
}&lt;br /&gt;
.table.natcat &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.natcat:nth-child(odd) {&lt;br /&gt;
  background-color:#FFF8E8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove after shadow for tables that have been centered, otherwise the shadow spans the entire page */&lt;br /&gt;
.table[class*=center]::after,&lt;br /&gt;
.table.noshadowafter::after { background-image:none; }&lt;br /&gt;
&lt;br /&gt;
div.infobox table,&lt;br /&gt;
div.nav table { background-color:transparent; }&lt;br /&gt;
&lt;br /&gt;
.careerlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	clear: left;&lt;br /&gt;
        margin: 0em 0.5em 0em 0em;&lt;br /&gt;
	width: 250px;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
        text-align: left;&lt;br /&gt;
        line-height: 1.5em;&lt;br /&gt;
	background: #f9f9f9;&lt;br /&gt;
        color: black;&lt;br /&gt;
	float: left;&lt;br /&gt;
        display:inline;&lt;br /&gt;
        border: 1px solid #aaa;&lt;br /&gt;
        border-spacing: 3px;&lt;br /&gt;
	padding: 0.2em;&lt;br /&gt;
	overflow: auto;&lt;br /&gt;
	z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.notaninfobox &amp;gt; .infobox-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-size: 120%;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-imagearea {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
.infobox-imagearea &amp;gt; div:not(:first-child) {&lt;br /&gt;
        margin-top: 0.2em; /* Поле сверху */&lt;br /&gt;
        margin-bottom: 0.2em; /* Поле снизу */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-rows {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
#content .infobox-rows p {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows audio {&lt;br /&gt;
	width: 184px;&lt;br /&gt;
}&lt;br /&gt;
/* Merge adjacent dls in the infobox (since they&#039;re usually supposed to be one, but the wiki screws up sometimes) */&lt;br /&gt;
.infobox-rows dl + dl {&lt;br /&gt;
	margin-top: -0.4em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-rows dl:last-child {&lt;br /&gt;
	margin-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-footer {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.biobox-header {&lt;br /&gt;
	background:#ff7f00;&lt;br /&gt;
        color: #ffffff;&lt;br /&gt;
        text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Alternating table rows, primarily used with [[Template:Biobox row]] */&lt;br /&gt;
.alternaterows tr:nth-child(even),&lt;br /&gt;
.infobox-rows tr:nth-child(even) {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The blue header used throughout the wiki */&lt;br /&gt;
.mcwiki-header {&lt;br /&gt;
	background: #ff7f00;&lt;br /&gt;
        color: white;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.czechhunterlist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodylist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.seancodysceneinline {&lt;br /&gt;
	display: block;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0em 0 0em 0em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gaywargameslist {&lt;br /&gt;
	display: block;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 1 0.5em 0.5em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hunkchannellist {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pornographiccareerlistgay {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerliststraight {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.pornographiccareerlistbisexual {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infoboxcompetitionbb {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    float: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: none;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infobox caption {&lt;br /&gt;
    font-size: 125%;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.infobox td,&lt;br /&gt;
.infobox th {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered td,&lt;br /&gt;
.infobox.bordered th {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered .borderless td,&lt;br /&gt;
.infobox.bordered .borderless th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.sisterproject {&lt;br /&gt;
    width: 20em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.infobox.standard-talk.bordered td,&lt;br /&gt;
.infobox.standard-talk.bordered th {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* styles for bordered infobox with merged rows */&lt;br /&gt;
.infobox.bordered .mergedtoprow td,&lt;br /&gt;
.infobox.bordered .mergedtoprow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.bordered .mergedrow td,&lt;br /&gt;
.infobox.bordered .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styles for geography infoboxes, eg countries,&lt;br /&gt;
   country subdivisions, cities, etc.            */&lt;br /&gt;
.infobox.geography {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    line-height: 1.2em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography  td,&lt;br /&gt;
.infobox.geography  th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
.infobox.geography .mergedtoprow td,&lt;br /&gt;
.infobox.geography .mergedtoprow th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedrow td,&lt;br /&gt;
.infobox.geography .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedbottomrow td,&lt;br /&gt;
.infobox.geography .mergedbottomrow th {&lt;br /&gt;
    border-top: 0;&lt;br /&gt;
    border-bottom: 1px solid #aaa;&lt;br /&gt;
    padding: 0 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .maptable td,&lt;br /&gt;
.infobox.geography .maptable th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Normal font styling for table row headers with scope=&amp;quot;row&amp;quot; tag */&lt;br /&gt;
.wikitable.plainrowheaders th[scope=row] {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Lists in data cells are always left-aligned */&lt;br /&gt;
.wikitable td ul,&lt;br /&gt;
.wikitable td ol,&lt;br /&gt;
.wikitable td dl {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
/* ...unless they also use the hlist class */&lt;br /&gt;
.toc.hlist ul,&lt;br /&gt;
#toc.hlist ul,&lt;br /&gt;
.wikitable.hlist td ul,&lt;br /&gt;
.wikitable.hlist td ol,&lt;br /&gt;
.wikitable.hlist td dl {&lt;br /&gt;
    text-align: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon for all PDF files&lt;br /&gt;
   in browsers that support these CSS selectors, like Mozilla and Opera */&lt;br /&gt;
div#content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF#&amp;quot;].external {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon anywhere the PDFlink class&lt;br /&gt;
   is used (notably Template:PDFlink). This works in IE, unlike the above. */&lt;br /&gt;
div#content span.PDFlink a,&lt;br /&gt;
div#mw_content span.PDFlink a {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */&lt;br /&gt;
div.columns-2 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
    min-width: 300px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-3 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 33.3%;&lt;br /&gt;
    min-width: 200px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-4 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 25%;&lt;br /&gt;
    min-width: 150px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-5 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 20%;&lt;br /&gt;
    min-width: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Messagebox templates */&lt;br /&gt;
.messagebox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    width: 80%;&lt;br /&gt;
    margin: 0 auto 1em auto;&lt;br /&gt;
    padding: .2em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.merge {&lt;br /&gt;
    border: 1px solid #c0b8cc;&lt;br /&gt;
    background-color: #f0e5ff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.cleanup {&lt;br /&gt;
    border: 1px solid #9f9fff;&lt;br /&gt;
    background-color: #efefff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    margin: 4px auto;&lt;br /&gt;
}&lt;br /&gt;
/* For old WikiProject banners inside banner shells. */&lt;br /&gt;
.mbox-inside .standard-talk,&lt;br /&gt;
.messagebox.nested-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: 2px 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small-talk {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
    background: #F8EABA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */&lt;br /&gt;
th.mbox-text, td.mbox-text {   /* The message body cell(s) */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 0.25em 0.9em;     /* 0.9em left/right */&lt;br /&gt;
    width: 100%;               /* Make all mboxes the same width regardless of text length */&lt;br /&gt;
}&lt;br /&gt;
td.mbox-image {                /* The left image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-imageright {           /* The right image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-empty-cell {           /* An empty narrow cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Article message box styles */&lt;br /&gt;
table.ambox {&lt;br /&gt;
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
table.ambox + table.ambox {      /* Single border between stacked boxes. */&lt;br /&gt;
    margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.ambox th.mbox-text,&lt;br /&gt;
.ambox td.mbox-text {            /* The message body cell(s) */&lt;br /&gt;
    padding: 0.25em 0.5em;       /* 0.5em left/right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-image {           /* The left image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-imageright {      /* The right image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ambox-notice {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-speedy {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;                   /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-delete {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-content {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-style {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-move {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-protection {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Image message box styles */&lt;br /&gt;
table.imbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */&lt;br /&gt;
    margin: 0 -0.5em;       /* 0.9 - 0.5 = 0.4em left/right.        */&lt;br /&gt;
    display: block;         /* Fix for webkit to force 100% width.  */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .imbox {       /* For imboxes inside other templates.  */&lt;br /&gt;
    margin: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.imbox-notice {&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-speedy {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-delete {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-content {&lt;br /&gt;
    border: 3px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-style {&lt;br /&gt;
    border: 3px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-move {&lt;br /&gt;
    border: 3px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-protection {&lt;br /&gt;
    border: 3px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-license {&lt;br /&gt;
    border: 3px solid #88a;       /* Dark gray */&lt;br /&gt;
    background: #f7f8ff;          /* Light gray */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-featured {&lt;br /&gt;
    border: 3px solid #cba135;    /* Brown-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category message box styles */&lt;br /&gt;
table.cmbox {&lt;br /&gt;
    margin: 3px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #DFE8FF;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.cmbox-notice {&lt;br /&gt;
    background: #D8E8FF;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-speedy {&lt;br /&gt;
    margin-top: 4px;&lt;br /&gt;
    margin-bottom: 4px;&lt;br /&gt;
    border: 4px solid #b22222;    /* Red */&lt;br /&gt;
    background: #FFDBDB;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-delete {&lt;br /&gt;
    background: #FFDBDB;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-content {&lt;br /&gt;
    background: #FFE7CE;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-style {&lt;br /&gt;
    background: #FFF9DB;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-move {&lt;br /&gt;
    background: #E4D8FF;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-protection {&lt;br /&gt;
    background: #EFEFE1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Other pages message box styles */&lt;br /&gt;
table.ombox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;       /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
    border: 1px solid #aaa;       /* Gray */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
    border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
    border: 1px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
    border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
    border: 2px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Talk page message box styles */&lt;br /&gt;
table.tmbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #c0c090;    /* Default &amp;quot;notice&amp;quot; gray-brown */&lt;br /&gt;
    background: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The &amp;quot;mediawiki&amp;quot; class ensures that */&lt;br /&gt;
    margin: 2px 0;               /* this declaration overrides other styles (including mbox-small above)   */&lt;br /&gt;
    width: 100%;                 /* For Safari and Opera */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .tmbox.mbox-small { /* &amp;quot;small&amp;quot; tmboxes should not be small when  */&lt;br /&gt;
    line-height: 1.5em;          /* also &amp;quot;nested&amp;quot;, so reset styles that are   */&lt;br /&gt;
    font-size: 100%;             /* set in &amp;quot;mbox-small&amp;quot; above.                */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.tmbox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-content {&lt;br /&gt;
    border: 2px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-style {&lt;br /&gt;
    border: 2px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-move {&lt;br /&gt;
    border: 2px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-protection,&lt;br /&gt;
table.tmbox-notice {&lt;br /&gt;
    border: 1px solid #c0c090;    /* Gray-brown */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disambig and set index box styles */&lt;br /&gt;
table.dmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.9em 1em;&lt;br /&gt;
    border-top: 1px solid #ccc;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer and header message box styles */&lt;br /&gt;
table.fmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;     /* Default &amp;quot;system&amp;quot; gray */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-system {&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-warning {&lt;br /&gt;
    border: 1px solid #bb7070;  /* Dark pink */&lt;br /&gt;
    background: #ffdbdb;        /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-editnotice {&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;warning&amp;quot; style fmbox messages. */&lt;br /&gt;
div.mw-warning-with-logexcerpt,&lt;br /&gt;
div.mw-lag-warn-high,&lt;br /&gt;
div.mw-cascadeprotectedwarning,&lt;br /&gt;
div#mw-protect-cascadeon,&lt;br /&gt;
div.titleblacklist-warning,&lt;br /&gt;
div.locked-warning {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #bb7070;&lt;br /&gt;
    background: #ffdbdb;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;system&amp;quot; style fmbox messages.&lt;br /&gt;
   Used in [[MediaWiki:Readonly lag]]. */&lt;br /&gt;
div.mw-lag-warn-normal,&lt;br /&gt;
div.fmbox-system {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** TABLE CLASSES **/&lt;br /&gt;
.table {&lt;br /&gt;
  border:0 solid;&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  border-spacing:0;&lt;br /&gt;
  font-size:.9230769231em;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  clear:none;&lt;br /&gt;
  position:relative;&lt;br /&gt;
  display:inline-block;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
  margin:5px 0;&lt;br /&gt;
  padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* make table captions bold */&lt;br /&gt;
.table &amp;gt; caption { font-weight: bold }&lt;br /&gt;
&lt;br /&gt;
/* this is a hack to add borders to IE8- */&lt;br /&gt;
.table &amp;gt; thead, .table &amp;gt; tbody { border:0 solid #aaa\0/ }&lt;br /&gt;
&lt;br /&gt;
.table tr {&lt;br /&gt;
  border:1px solid #aaa\0/;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* and this removes them for IE9+ */&lt;br /&gt;
:root .table tr { border-top-width:0; border-bottom-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :first-child { border-left:1px solid #AAA; }&lt;br /&gt;
.table &amp;gt; * &amp;gt; tr &amp;gt; :last-child { border-right:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr:last-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; caption { border-bottom:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody:first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading &amp;gt; *,&lt;br /&gt;
.table &amp;gt; thead &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
  background-image:url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
  padding:.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; td,&lt;br /&gt;
.table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  line-height:1.667em;&lt;br /&gt;
  padding:.25em .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table tr &amp;gt; th, .table[class*=center] tr { text-align:center; }&lt;br /&gt;
.table[class*=left] tr { text-align:left; }&lt;br /&gt;
.table[class*=right] tr { text-align:right; }&lt;br /&gt;
.table[class*=middle] tr { vertical-align:middle; }&lt;br /&gt;
.table[class*=top] tr { vertical-align:top; }&lt;br /&gt;
.table[class*=bottom] tr { vertical-align:bottom; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
  background-color:#EEE;&lt;br /&gt;
  border:1px solid #aaa!important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; th, .table &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
  background-color:#E7E7E7;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
  background-color:#F3F3F3;&lt;br /&gt;
  border-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; tbody,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [rowspan],&lt;br /&gt;
.table &amp;gt; tbody &amp;gt; tr &amp;gt; [colspan] { border:1px solid #AAA; }&lt;br /&gt;
&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [rowspan],&lt;br /&gt;
.table &amp;gt; :first-child &amp;gt; tr:first-child + tr [colspan] { border-top-width:0; }&lt;br /&gt;
&lt;br /&gt;
.table .line,&lt;br /&gt;
.table .line-bottom {&lt;br /&gt;
  border-bottom-width:1px!important;&lt;br /&gt;
  border-bottom-style:solid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-top {&lt;br /&gt;
  border-top-width:1px!important;&lt;br /&gt;
  border-top-style:solid;&lt;br /&gt;
  border-top-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-left {&lt;br /&gt;
  border-left-width:1px!important;&lt;br /&gt;
  border-left-style:solid;&lt;br /&gt;
  border-left-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table .line-right {&lt;br /&gt;
  border-right-width:1px!important;&lt;br /&gt;
  border-right-style:solid;&lt;br /&gt;
  border-right-color:#AAA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table table {&lt;br /&gt;
  background-color:transparent;&lt;br /&gt;
  padding:0;&lt;br /&gt;
  margin:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dl+table.table {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** STDT table classes **/&lt;br /&gt;
/* any */&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.any &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#888 !important;&lt;br /&gt;
    border-color:#6D6D6D !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.any &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.any &amp;gt; th {&lt;br /&gt;
    background-color:#CCC;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
  }&lt;br /&gt;
  .table.any &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.any:nth-child(odd) {&lt;br /&gt;
    background-color:#EEE;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* career */&lt;br /&gt;
  .table.career { width: auto; min-width: 68%; max-width:2400px; display:table; text-align:center; vertical-align:middle;}&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; * {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-image:linear-gradient(to top, #E7E7E7, #EFEFEF);&lt;br /&gt;
    border-color:#AAA; !important;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tfoot &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; thead &amp;gt; tr &amp;gt; th {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.career &amp;gt; th {&lt;br /&gt;
    background-color:#F3F3F3; !important;&lt;br /&gt;
    border-color:#AAA;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table.career &amp;gt; tbody &amp;gt; tr:nth-child(odd) {&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.career:nth-child(odd) {&lt;br /&gt;
    background-color:#F3F3F3;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    vertical-align:middle;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* guardian */&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.guardian &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#72C1D9 !important;&lt;br /&gt;
    border-color:#5B9AAE !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.guardian &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.guardian &amp;gt; th {&lt;br /&gt;
    background-color:#B9E0EC;&lt;br /&gt;
    border-color:#94B3BD;&lt;br /&gt;
  }&lt;br /&gt;
  .table.guardian &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.guardian:nth-child(odd) {&lt;br /&gt;
    background-color:#EAF6F9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/* mesmer */&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading,&lt;br /&gt;
  .table.mesmer &amp;gt; :first-child &amp;gt; tr:first-child &amp;gt; *,&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr.heading &amp;gt; * {&lt;br /&gt;
    background-color:#B679D5 !important;&lt;br /&gt;
    border-color:#9261AA !important;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; tfoot &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  .table.mesmer &amp;gt; thead &amp;gt; tr &amp;gt; th,&lt;br /&gt;
  table.table &amp;gt; tbody &amp;gt; tr.mesmer &amp;gt; th {&lt;br /&gt;
    background-color:#DBBCEA;&lt;br /&gt;
    border-color:#AF96BB;&lt;br /&gt;
  }&lt;br /&gt;
  .table.mesmer &amp;gt; tbody &amp;gt; tr:nth-child(odd),&lt;br /&gt;
  .table &amp;gt; tbody &amp;gt; tr.mesmer:nth-child(odd) {&lt;br /&gt;
    background-color:#F4EBF9;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
/** Restore sort icons for sortable table headers **/&lt;br /&gt;
/* These are inserted as CSS background-image, which clashes with our fancy gradient overlays */&lt;br /&gt;
table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  padding:0.5em;&lt;br /&gt;
  padding-right:21px;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* And finally jquery overlays for tables that also use .table classes (two background images) */&lt;br /&gt;
table.table.jquery-tablesorter th.headerSort {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_both.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortDown {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhFNzNGQjI3MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhFNzNGQjI2MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYyPAcmtsJyDVDKKWQEAOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_down.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
table.table.jquery-tablesorter th.headerSortUp {&lt;br /&gt;
  background-image:url(data:image/gif;base64,R0lGODlhFQAEAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODc0MEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODczMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAEAAACDYwfoAvoz9qbZ9FrJC0AOw==), url(&amp;quot;/w/resources/assets/header/Infobox_header_overlay.png&amp;quot;);&lt;br /&gt;
  background-image:url(/w/resources/jquery/images/sort_up.gif)!ie;&lt;br /&gt;
  background-repeat:no-repeat, repeat;&lt;br /&gt;
  background-position:100% 50%, 0% 0%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* These mbox-small classes must be placed after all other&lt;br /&gt;
   ambox/tmbox/ombox etc classes. &amp;quot;body.mediawiki&amp;quot; is so&lt;br /&gt;
   they override &amp;quot;table.ambox + table.ambox&amp;quot; above. */&lt;br /&gt;
body.mediawiki table.mbox-small {   /* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 0 4px 1em;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki table.mbox-small-left {   /* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 1em 4px 0;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for compact ambox */&lt;br /&gt;
/* Hide the images */&lt;br /&gt;
.compact-ambox table .mbox-image,&lt;br /&gt;
.compact-ambox table .mbox-imageright,&lt;br /&gt;
.compact-ambox table .mbox-empty-cell {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Remove borders, backgrounds, padding, etc. */&lt;br /&gt;
.compact-ambox table.ambox {&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    margin: 0 0 0 1.6em !important;&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki .compact-ambox table.mbox-small-left {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Style the text cell as a list item and remove its padding */&lt;br /&gt;
.compact-ambox table .mbox-text {&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
.compact-ambox table .mbox-text-span {&lt;br /&gt;
    display: list-item;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style-type: square;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/MonoBook/bullet.gif);&lt;br /&gt;
}&lt;br /&gt;
.skin-vector .compact-ambox table .mbox-text-span {&lt;br /&gt;
    list-style-type: disc;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/static-current/skins/Vector/images/bullet-icon.png)&lt;br /&gt;
}&lt;br /&gt;
/* Allow for hiding text in compact form */&lt;br /&gt;
.compact-ambox .hide-when-compact {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove default styles for [[MediaWiki:Noarticletext]]. */&lt;br /&gt;
div.noarticletext {&lt;br /&gt;
    border: none;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    padding: 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide (formatting) elements from screen, but not from screenreaders */&lt;br /&gt;
.visualhide {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: -10000px;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
    height: 1px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bold save button */&lt;br /&gt;
#wpSave {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */&lt;br /&gt;
.hiddenStructure {&lt;br /&gt;
    display: inline !important;&lt;br /&gt;
    color: #f00;&lt;br /&gt;
    background-color: #0f0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* suppress missing interwiki image links where #ifexist cannot&lt;br /&gt;
   be used due to high number of requests see .hidden-redlink on&lt;br /&gt;
   [[m:MediaWiki:Common.css]] */&lt;br /&gt;
.check-icon a.new {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Removes underlines from certain links */&lt;br /&gt;
.nounderlines a,&lt;br /&gt;
.IPA a:link, .IPA a:visited {&lt;br /&gt;
    text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Standard Navigationsleisten, aka box hiding thingy&lt;br /&gt;
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */&lt;br /&gt;
div.NavFrame {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame + div.NavFrame {&lt;br /&gt;
    border-top-style: none;&lt;br /&gt;
    border-top-style: hidden;&lt;br /&gt;
}&lt;br /&gt;
div.NavPic {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame div.NavHead {&lt;br /&gt;
    line-height: 1.6em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background-color: #ccf;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame p,&lt;br /&gt;
div.NavFrame div.NavContent,&lt;br /&gt;
div.NavFrame div.NavContent p {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
div.NavEnd {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1px;&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
a.NavToggle {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    right: 3px;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hatnotes and disambiguation notices */&lt;br /&gt;
.hatnote {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.hatnote i {&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote + div.hatnote {&lt;br /&gt;
    margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow transcluded pages to display in lists rather than a table.&lt;br /&gt;
   Compatible in Firefox; incompatible in IE6. */&lt;br /&gt;
.listify td    { display: list-item; }&lt;br /&gt;
.listify tr    { display: block; }&lt;br /&gt;
.listify table { display: block; }&lt;br /&gt;
&lt;br /&gt;
.lirev ol,.lirev ul{display:flex;flex-direction:column-reverse;list-style-type:disc;width:240px}&lt;br /&gt;
center &amp;gt; ul {list-style:none}&lt;br /&gt;
&lt;br /&gt;
/* Geographical coordinates defaults. See [[Template:Coord/link]]&lt;br /&gt;
   for how these are used. The classes &amp;quot;geo&amp;quot;, &amp;quot;longitude&amp;quot;, and&lt;br /&gt;
   &amp;quot;latitude&amp;quot; are used by the [[Geo microformat]]. */&lt;br /&gt;
.geo-default, .geo-dms, .geo-dec  { display: inline; }&lt;br /&gt;
.geo-nondefault, .geo-multi-punct { display: none; }&lt;br /&gt;
.longitude, .latitude             { white-space: nowrap; }&lt;br /&gt;
&lt;br /&gt;
/* When &amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt; is used on the table of contents,&lt;br /&gt;
   the ToC will display without numbers */&lt;br /&gt;
.nonumtoc .tocnumber {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.nonumtoc #toc ul,&lt;br /&gt;
.nonumtoc .toc ul {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: .3em 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.hlist.nonumtoc #toc ul ul,&lt;br /&gt;
.hlist.nonumtoc .toc ul ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow limiting of which header levels are shown in a TOC;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;, for instance, will limit to&lt;br /&gt;
   showing ==headings== and ===headings=== but no further&lt;br /&gt;
   (as long as there are no =headings= on the page, which&lt;br /&gt;
   there shouldn&#039;t be according to the MoS). */&lt;br /&gt;
.toclimit-2 .toclevel-1 ul,&lt;br /&gt;
.toclimit-3 .toclevel-2 ul,&lt;br /&gt;
.toclimit-4 .toclevel-3 ul,&lt;br /&gt;
.toclimit-5 .toclevel-4 ul,&lt;br /&gt;
.toclimit-6 .toclevel-5 ul,&lt;br /&gt;
.toclimit-7 .toclevel-6 ul {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for Template:Quote */&lt;br /&gt;
blockquote.templatequote {&lt;br /&gt;
     margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
blockquote.templatequote div.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* User block messages */&lt;br /&gt;
div.user-block {&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    border: 1px solid #A9A9A9;&lt;br /&gt;
    background-color: #FFEFD5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent line breaks in silly places:&lt;br /&gt;
   1) Where desired&lt;br /&gt;
   2) Links when we don&#039;t want them to&lt;br /&gt;
   3) Bold &amp;quot;links&amp;quot; to the page itself&lt;br /&gt;
   4) Ref tags with group names &amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt; --&amp;gt; &amp;quot;[Note 1]&amp;quot; */&lt;br /&gt;
.nowrap,&lt;br /&gt;
.nowraplinks a,&lt;br /&gt;
.nowraplinks .selflink,&lt;br /&gt;
sup.reference a {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
/* But allow wrapping where desired: */&lt;br /&gt;
.wrap,&lt;br /&gt;
.wraplinks a {&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For template documentation */&lt;br /&gt;
.template-documentation {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 1em 0 0 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #ecfcf4;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Inline divs in ImageMaps (code borrowed from de.wiki) */&lt;br /&gt;
.imagemap-inline div {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Increase the height of the image upload box */&lt;br /&gt;
#wpUploadDescription {&lt;br /&gt;
    height: 13em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    margin: 1px;&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
img.thumbborder {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumb {&lt;br /&gt;
    border: 0px;&lt;br /&gt;
    padding: 1px !important;&lt;br /&gt;
    margin: 0 0 0 0;&lt;br /&gt;
    background-color: #f9f9f9 !important;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumbcaption {&lt;br /&gt;
    color: #252525 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Minimum thumb width */&lt;br /&gt;
.thumbinner {&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Makes the background of a framed image white instead of gray.&lt;br /&gt;
   Only visible with transparent images. */&lt;br /&gt;
div.thumb .thumbimage {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The backgrounds for galleries. */&lt;br /&gt;
div#content .gallerybox div.thumb {&lt;br /&gt;
    /* Light gray padding */&lt;br /&gt;
    background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
/* Put a chequered background behind images, only visible if they have transparency.&lt;br /&gt;
   &#039;.filehistory a img&#039; and &#039;#file img:hover&#039; are handled by MediaWiki core (as of 1.19) */&lt;br /&gt;
.gallerybox .thumb img {&lt;br /&gt;
    background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;&lt;br /&gt;
}&lt;br /&gt;
/* But not on articles, user pages, portals or with opt-out. */&lt;br /&gt;
.ns-0 .gallerybox .thumb img,&lt;br /&gt;
.ns-2 .gallerybox .thumb img,&lt;br /&gt;
.ns-100 .gallerybox .thumb img,&lt;br /&gt;
.nochecker .gallerybox .thumb img {&lt;br /&gt;
    background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating boxes from overlapping any category listings,&lt;br /&gt;
   file histories, edit previews, and edit [Show changes] views. */&lt;br /&gt;
#mw-subcategories, #mw-pages, #mw-category-media,&lt;br /&gt;
#filehistory, #wikiPreview, #wikiDiff {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {&lt;br /&gt;
    display: block;   /* Override inline block mode */&lt;br /&gt;
    margin-bottom: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;     /* Clear any info boxes that stick out */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;     /* Prevents margin collapsing */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Selectively hide headers in WikiProject banners */&lt;br /&gt;
.wpb .wpb-header             { display: none; }&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: block; }     /* for IE */&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */&lt;br /&gt;
.wpbs-inner .wpb-outside     { display: none; }      /* hide things that should only display outside shells */&lt;br /&gt;
&lt;br /&gt;
/* Styling for Abuse Filter tags */&lt;br /&gt;
.mw-tag-markers {&lt;br /&gt;
    font-family:sans-serif;&lt;br /&gt;
    font-style:italic;&lt;br /&gt;
    font-size:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide stuff meant for accounts with special permissions. Made visible again in&lt;br /&gt;
   [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],&lt;br /&gt;
   [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */&lt;br /&gt;
.sysop-show,&lt;br /&gt;
.accountcreator-show,&lt;br /&gt;
.templateeditor-show,&lt;br /&gt;
.autoconfirmed-show {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Hide the redlink generated by {{Editnotice}},&lt;br /&gt;
 * this overrides the &amp;quot;.sysop-show { display: none; }&amp;quot; above that applies&lt;br /&gt;
 * to the same link as well.&lt;br /&gt;
 *&lt;br /&gt;
 * See [[Phabricator:45013]].&lt;br /&gt;
 */&lt;br /&gt;
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink, .mw-ve-editNotice .editnotice-redlink {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove bullets when there are multiple edit page warnings */&lt;br /&gt;
ul.permissions-errors &amp;gt; li {&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
}&lt;br /&gt;
ul.permissions-errors {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No linewrap on the labels of the login/signup page */&lt;br /&gt;
body.page-Special_UserLogin .mw-label label,&lt;br /&gt;
body.page-Special_UserLogin_signup .mw-label label {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pie chart test: Transparent borders */&lt;br /&gt;
.transborder {&lt;br /&gt;
    border: solid transparent;&lt;br /&gt;
}&lt;br /&gt;
* html .transborder {  /* IE6 */&lt;br /&gt;
    border: solid #000001;&lt;br /&gt;
    filter: chroma(color=#000001);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for updated markers on watchlist, history and recent/related changes.&lt;br /&gt;
   Bullets are handled in skin-specific stylesheets. */&lt;br /&gt;
.updatedmarker {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #006400;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist .mw-changeslist-line-watched .mw-title {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-special-Watchlist #mw-watchlist-resetbutton {&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
.mw-enhanced-watched .mw-enhanced-rc-time {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generic class for Times-based serif, texhtml class for inline math */&lt;br /&gt;
.times-serif,&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    font-family: &amp;quot;Nimbus Roman No9 L&amp;quot;, &amp;quot;Times New Roman&amp;quot;, Times, serif;&lt;br /&gt;
    font-size: 118%;&lt;br /&gt;
    line-height: 0.5;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml span.texhtml {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Force tabular and lining display for digits and texhtml */&lt;br /&gt;
.digits,&lt;br /&gt;
.texhtml {&lt;br /&gt;
    -moz-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    -webkit-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;, &amp;quot;kern&amp;quot; 0;&lt;br /&gt;
    font-variant-numeric: lining-nums tabular-nums;&lt;br /&gt;
    font-kerning: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display tabs with 4 spaces, see [[Phabricator:59824]] and [[Phabricator:59825]] */&lt;br /&gt;
div.mw-geshi div,&lt;br /&gt;
div.mw-geshi div pre,&lt;br /&gt;
span.mw-geshi,&lt;br /&gt;
pre.source-css,&lt;br /&gt;
pre.source-javascript,&lt;br /&gt;
pre.source-lua {&lt;br /&gt;
    -moz-tab-size: 4;&lt;br /&gt;
    -o-tab-size: 4;&lt;br /&gt;
    tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix styling of transcluded prefindex tables */&lt;br /&gt;
table#mw-prefixindex-list-table,&lt;br /&gt;
table#mw-prefixindex-nav-table {&lt;br /&gt;
    width: 98%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For portals, added 2011-12-07 -bv&lt;br /&gt;
   On wide screens, show these as two columns&lt;br /&gt;
   On narrow and mobile screens, let them collapse into a single column */&lt;br /&gt;
.portal-column-left {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 49%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 60%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 39%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-extra-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 70%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-extra-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 29%;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 800px) {&lt;br /&gt;
    /* Decouple the columns on narrow screens */&lt;br /&gt;
    .portal-column-left,&lt;br /&gt;
    .portal-column-right,&lt;br /&gt;
    .portal-column-left-wide,&lt;br /&gt;
    .portal-column-right-narrow,&lt;br /&gt;
    .portal-column-left-extra-wide,&lt;br /&gt;
    .portal-column-right-extra-narrow {&lt;br /&gt;
        float: inherit;&lt;br /&gt;
        width: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For announcements */&lt;br /&gt;
#bodyContent .letterhead {&lt;br /&gt;
    background-image:url(&#039;//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png&#039;);&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    padding: 2em;&lt;br /&gt;
    background-color: #faf9f2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tree style lists */&lt;br /&gt;
.treeview ul {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
}&lt;br /&gt;
.treeview li {&lt;br /&gt;
    padding: 2;&lt;br /&gt;
    margin: 2;&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    zoom: 1; /* BE KIND TO IE6 */;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png&amp;quot;) no-repeat 0 -2981px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 20px;&lt;br /&gt;
    text-indent: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li.lastline {&lt;br /&gt;
    background-position: 0 -5971px&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: -1px;&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul &amp;gt; li:first-child {&lt;br /&gt;
    background-position: 0 9px&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* hidden sortkey for tablesorter */&lt;br /&gt;
td .sortkey,&lt;br /&gt;
th .sortkey {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make it possible to hide checkboxes in &amp;lt;inputbox&amp;gt; */&lt;br /&gt;
.inputbox-hidecheckboxes form .inputbox-element {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */&lt;br /&gt;
.k-player .k-attribution {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Move &#039;play&#039; button of video player to bottom left corner */&lt;br /&gt;
.PopUpMediaTransform a .play-btn-large {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    right: auto;&lt;br /&gt;
    bottom: 0;&lt;br /&gt;
    left: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Workaround to keep editnotices readable in VE view.&lt;br /&gt;
   Long term, editnotices should become a core feature so that they can be designed responsive. */&lt;br /&gt;
.mw-ve-editNotice .mbox-image {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Movies */&lt;br /&gt;
.actor-image a img, .gadget-image a img {&lt;br /&gt;
  border: 1px solid #ccc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.top-align td, .actor-appearances-table td, .gadget-appearances-table td {&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.actor-appearances-table .thumb, .gadget-appearances-table .thumb {&lt;br /&gt;
  margin-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Margins for &amp;lt;ol&amp;gt; and &amp;lt;ul&amp;gt; */&lt;br /&gt;
div#content ol, div#content ul,&lt;br /&gt;
div#mw_content ol, div#mw_content ul {&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* actortable class for skinning actor tables */&lt;br /&gt;
&lt;br /&gt;
table.actortable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th, table.actortable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.actortable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.nospacing p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a,table.headerlink th a.new {&lt;br /&gt;
  color: #FFFFFF;&lt;br /&gt;
  border-bottom: 1px dotted #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.headerlink th a:hover {&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable {&lt;br /&gt;
  margin: 1em 1em 1em 0;&lt;br /&gt;
  background: #f9f9f9;&lt;br /&gt;
  border: 1px #4e96c0 solid;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th, table.chartable td {&lt;br /&gt;
  border: 1px #ccc solid;&lt;br /&gt;
  padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.chartable th {&lt;br /&gt;
  background: #7BA1EC;&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* wikitable/prettytable class for skinning normal tables */&lt;br /&gt;
table.wikitable,&lt;br /&gt;
table.prettytable {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable.seasontable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5bbd53;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.volumetable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #647dd1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.movietable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #A153D2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.ovatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #f08f31;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.dramatable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #67A56E;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.bodybuildingcompetition th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #5E7EAF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.gadgettable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #FF9900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable.collectibletable th {&lt;br /&gt;
  color: #ffffff;&lt;br /&gt;
  background: #69C3A5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* JS Tab System, Jacked and Hacked from the jsprefs in monobook/main.css -Dantman */&lt;br /&gt;
.tabtoc {&lt;br /&gt;
	margin: 0 !important;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	color: #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li {&lt;br /&gt;
	margin: 1px -2px 1px 2px;&lt;br /&gt;
	float: left;&lt;br /&gt;
	padding: 2px 0 3px 0;&lt;br /&gt;
	border: none;&lt;br /&gt;
	top:4px;&lt;br /&gt;
	left:-2px;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	list-style-type: none;&lt;br /&gt;
	list-style-image: none;&lt;br /&gt;
	z-index: 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected {&lt;br /&gt;
	border-radius: 5px 5px 0 0;&lt;br /&gt;
	-webkit-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-moz-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-ms-border-radius: 5px 5px 0 0;&lt;br /&gt;
	-o-border-radius: 5px 5px 0 0;&lt;br /&gt;
	top: 2px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	background-color: #f9f9f9;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	padding-top: 2px;&lt;br /&gt;
	margin-right: -3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc &amp;gt;; li.selected {&lt;br /&gt;
	top: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc a,&lt;br /&gt;
.tabtoc a:active {&lt;br /&gt;
	display: block;&lt;br /&gt;
	color: #000;&lt;br /&gt;
	padding: 0 .7em;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabtoc li.selected a {&lt;br /&gt;
	cursor: default;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabcontainer {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	padding: 7px;&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tabbox {&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin-right: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection .tab {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.tabsection table, .tabsection .tab {&lt;br /&gt;
	background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.mainTab {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
	<entry>
		<id>https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2921</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://test1.pbc.xxx/w/index.php?title=Main_Page&amp;diff=2921"/>
		<updated>2025-02-24T17:55:30Z</updated>

		<summary type="html">&lt;p&gt;PeaceDeadC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Обертка для Bootstrap --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;pbccdn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Основная сетка Bootstrap --&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;pbccdn-container-fluid pbccdn-py-3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;pbccdn-row&amp;quot;&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Левая колонка (Featured Article и Random Picture) --&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;pbccdn-col-lg-3 pbccdn-col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/Featured article}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/Random featured picture}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Центральная колонка (основной контент) --&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;pbccdn-col-lg-6 pbccdn-col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/Intro}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/Nav}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/In the news}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;!-- Закомментированный элемент --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- {{:Main Page/RecentChanges}} --&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &amp;lt;!-- Правая колонка (Featured Movie и Welcome back) --&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;pbccdn-col-lg-3 pbccdn-col-md-12&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{:Main Page/Featured movie}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;div class=&amp;quot;pbccdn-mb-4&amp;quot;&amp;gt;&lt;br /&gt;
          {{Container&lt;br /&gt;
            |style-content=text-align:center; color:#000000; border-radius: 0 0 0 0; padding: 0 1px 0 1px; background:#FAFAFA;&lt;br /&gt;
            |width=100%&lt;br /&gt;
            |title=Welcome back!&lt;br /&gt;
            |content=Also check out the rest of the [[Special:ContributionScores|PBCpedians]]!&lt;br /&gt;
          }}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeaceDeadC</name></author>
	</entry>
</feed>