﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources</id>
	<title>Модуль:Sources - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources"/>
	<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;action=history"/>
	<updated>2026-06-10T17:52:14Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=10130&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=10130&amp;oldid=prev"/>
		<updated>2020-03-17T21:25:25Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 21:25, 17 марта 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=10129&amp;oldid=prev</id>
		<title>ru&gt;Ghuron: убирание мусорного кода в ссылках https://wikidata.org/wiki/Track:Q######## (спасибо stjn)</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=10129&amp;oldid=prev"/>
		<updated>2020-03-10T11:12:41Z</updated>

		<summary type="html">&lt;p&gt;убирание мусорного кода в ссылках https://wikidata.org/wiki/Track:Q######## (спасибо &lt;a href=&quot;/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Stjn&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Участник:Stjn (страница не существует)&quot;&gt;stjn&lt;/a&gt;)&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 11:12, 10 марта 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l272&quot; &gt;Строка 272:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 272:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local result = result .. '&amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local result = result .. '&amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for key, entity in pairs( context.cache ) do&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for key, entity in pairs( context.cache ) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. '&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;a href=&amp;quot;&lt;/del&gt;https://wikidata.org' .. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;mw.uri.localUrl('Track:' .. key).path &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.. '&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;'&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. 'https://wikidata.org' .. mw.uri.localUrl('Track:' .. key).path;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     result = result ..'&amp;lt;/div&amp;gt;'&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     result = result ..'&amp;lt;/div&amp;gt;'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ru&gt;Ghuron</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=9763&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=9763&amp;oldid=prev"/>
		<updated>2020-02-22T13:53:07Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 13:53, 22 февраля 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=9762&amp;oldid=prev</id>
		<title>ru&gt;Vlsergey в 09:01, 4 июня 2018</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=9762&amp;oldid=prev"/>
		<updated>2018-06-04T09:01:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 09:01, 4 июня 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot; &gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nVolume = {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nVolume = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    de  = 'Vol.',&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	fr	= 'Vol.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	fr	= 'Vol.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	es	= 'Vol.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	es	= 'Vol.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot; &gt;Строка 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru	= 'Т.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru	= 'Т.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nIssue = {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nIssue = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	en	= 'Iss.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	en	= 'Iss.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru	= 'вып.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru	= 'вып.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nPages = {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18nPages = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	fr = 'P.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	fr = 'P.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot; &gt;Строка 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru = 'с.',&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	ru = 'с.',&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local i18nTirage = {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	en	= 'ed. size: %d',&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	ru	= '%d экз.',&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local monthg = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', &amp;quot;сентября&amp;quot;, &amp;quot;октября&amp;quot;, &amp;quot;ноября&amp;quot;, &amp;quot;декабря&amp;quot;};&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local monthg = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', &amp;quot;сентября&amp;quot;, &amp;quot;октября&amp;quot;, &amp;quot;ноября&amp;quot;, &amp;quot;декабря&amp;quot;};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot; &gt;Строка 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local options_doi = { separator = '; ', conjunction = '; ', format = function( doi ) return '[http://dx.doi.org/' .. doi .. ' doi:' .. doi .. ']' end, nolinks = true, preferids = false };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local options_doi = { separator = '; ', conjunction = '; ', format = function( doi ) return '[http://dx.doi.org/' .. doi .. ' doi:' .. doi .. ']' end, nolinks = true, preferids = false };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local options_issn = { separator = '; ', conjunction = '; ', format = function( issn ) return '[https://www.worldcat.org/issn/' .. issn .. ' ' .. issn .. ']' end, nolinks = true, preferids = false };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local options_issn = { separator = '; ', conjunction = '; ', format = function( issn ) return '[https://www.worldcat.org/issn/' .. issn .. ' ' .. issn .. ']' end, nolinks = true, preferids = false };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local options_pmid = { separator = '; ', conjunction = '; ', format = function( pmid ) return '[https://www.ncbi.nlm.nih.gov/pubmed/?term=' .. pmid .. ' PMID:' .. pmid .. ']' end, nolinks = true, preferids = false };&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function renderSource( context, src )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function renderSource( context, src )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l182&quot; &gt;Строка 182:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 192:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( src.pages ) then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( src.pages ) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;toString( context, src.pages, options_commas )  &lt;/del&gt;.. '.';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;		local strPages = toString( context, src.pages, options_commas );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;		strPages = mw.ustring.gsub( strPages, '[-—]', '–' );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;strPages &lt;/ins&gt;.. '.';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l211&quot; &gt;Строка 211:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 223:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ')';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ')';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( src.tirage ) then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		local tirageTemplate = i18nTirage[ context.lang ] or i18nTirage[ i18nDefaultLanguage ];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		result = result .. ' — ' .. toString( context, src.tirage, { separator = '; ', conjunction = ';', format = function( data ) return mw.ustring.format(tirageTemplate, data) end } );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l223&quot; &gt;Строка 223:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 240:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( src.doi ) then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( src.doi ) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ' — ' .. toString( context, src.doi, options_doi );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		result = result .. ' — ' .. toString( context, src.doi, options_doi );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( src.pmid ) then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		result = result .. ' — ' .. toString( context, src.pmid, options_pmid );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l360&quot; &gt;Строка 360:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 381:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = getEntity( context, entityId );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = getEntity( context, entityId );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( not entity ) then return '\'\'(entity ' .. entityId .. ' is missing)\'\'' end;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if ( not entity ) then return '\'\'(entity ' .. entityId .. ' is missing)\'\'' end;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( not isInstanceOf( entity, 'Q5' ) ) then&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		mw.log( 'Entity ' .. entityId .. ' is not a person' );&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		return nil;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local personName = nil;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local personName = nil;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l370&quot; &gt;Строка 370:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 387:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		personName = entity.labels[ context.lang ].value;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		personName = entity.labels[ context.lang ].value;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log('Got person name of ' .. entityId .. ' from label: «' .. personName .. '»' )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log('Got person name of ' .. entityId .. ' from label: «' .. personName .. '»' )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( not isInstanceOf( entity, 'Q5' ) ) then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		mw.log( 'Entity ' .. entityId .. ' is not a person' );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		return personName;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l420&quot; &gt;Строка 420:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 442:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im O. Fa» match' );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im O. Fa» match' );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. o .. '.';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. o .. '.';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	local i1, i2, i3, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a)\.%s(%a)\.%s(%a[%a\-]*)%s*$');&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( f ) then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im I. I. Fa» match' );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i1, 1, 1 ) .. '.&amp;amp;nbsp;' .. i2 .. '.&amp;amp;nbsp;' .. i3 .. '.';&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l432&quot; &gt;Строка 432:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 460:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im Ot оглы Fa» match' );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im Ot оглы Fa» match' );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	local i1, i2, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+de%s+(%a[%a\-]+)%s*$');&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	if ( f ) then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «I1 I2 de Fa» match' );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i1, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( i2, 1, 1 ) .. '.';&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l513&quot; &gt;Строка 513:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 547:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local refAnchorYear = frame.args['ref-year'];&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local refAnchorYear = frame.args['ref-year'];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local args = {};&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local args = {};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	args.part = frame.args['part'];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	args.parturl = frame.args['parturl'];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	args.pages = frame.args['pages'];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.refAnchor = frame.args['ref'];&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.refAnchor = frame.args['ref'];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.refAnchorYear = frame.args['ref-year'];&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.refAnchorYear = frame.args['ref-year'];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;part &lt;/del&gt;= frame.args['&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;part'];&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	args.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;url &lt;/ins&gt;= frame.args['&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;url&lt;/ins&gt;'];&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;	args.pages = frame.args['pages&lt;/del&gt;'];&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return p.renderSourceImpl( mw.text.trim( arg ), args );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return p.renderSourceImpl( mw.text.trim( arg ), args );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l526&quot; &gt;Строка 526:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 562:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local snaks = {};&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local snaks = {};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	snaks.P248 = { toWikibaseEntityIdSnak( 'P248', entityId ) };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	snaks.P248 = { toWikibaseEntityIdSnak( 'P248', entityId ) };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	snaks.P805 = { toWikibaseEntityIdSnak( 'P805', entityId ) };&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	copyArgsToSnaks( args, snaks );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	copyArgsToSnaks( args, snaks );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l546&quot; &gt;Строка 546:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 583:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if ( args[1] ) then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if ( args[1] ) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			snaks.P248 = { toWikibaseEntityIdSnak( &amp;quot;P248&amp;quot;, args[1] ) };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			snaks.P248 = { toWikibaseEntityIdSnak( &amp;quot;P248&amp;quot;, args[1] ) };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			snaks.P805 = { toWikibaseEntityIdSnak( &amp;quot;P805&amp;quot;, args[1] ) };&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		copyArgsToSnaks( args, snaks );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		copyArgsToSnaks( args, snaks );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l561&quot; &gt;Строка 561:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 599:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local result;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local result;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code = rendered.code or rendered.text;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local code = rendered.code or rendered.text;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	result = frame:extensionTag( 'ref', rendered.text, {name = code} ) .. '[[Category:Википедия:Статьи с источниками из Викиданных]]';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;	-- Про выбор алгоритма хеширования см. [[Модуль:Hash]]. Знак подчёркивания в начале позволяет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;	-- исключить ошибку, когда имя сноски — чисто числовое значение, каковыми иногда бывают хеши.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	result = frame:extensionTag( 'ref', rendered.text, { name = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'_' .. mw.hash.hashValue('fnv164', &lt;/ins&gt;code&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) &lt;/ins&gt;} ) .. '[[Category:Википедия:Статьи с источниками из Викиданных]]';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return result;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return result;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ru&gt;Vlsergey</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=3570&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=3570&amp;oldid=prev"/>
		<updated>2016-11-21T08:51:41Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
local u = require('Module:Sources-utils')&lt;br /&gt;
&lt;br /&gt;
local i18nDefaultLanguage = 'ru';&lt;br /&gt;
&lt;br /&gt;
local i18nEtAlDefault = ' et al.';&lt;br /&gt;
local i18nEtAl = {&lt;br /&gt;
	ru	= ' и др.',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nEditors = {&lt;br /&gt;
	fr	= '',&lt;br /&gt;
	de	= 'Hrsg.: ',&lt;br /&gt;
	es	= '',&lt;br /&gt;
	en	= '',&lt;br /&gt;
	it	= '',&lt;br /&gt;
	ru	= 'под ред. ',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nVolume = {&lt;br /&gt;
	fr	= 'Vol.',&lt;br /&gt;
	es	= 'Vol.',&lt;br /&gt;
	en	= 'Vol.',&lt;br /&gt;
	it	= 'Vol.',&lt;br /&gt;
	ru	= 'Т.',&lt;br /&gt;
}&lt;br /&gt;
local i18nIssue = {&lt;br /&gt;
	en	= 'Iss.',&lt;br /&gt;
	ru	= 'вып.',&lt;br /&gt;
}&lt;br /&gt;
local i18nPages = {&lt;br /&gt;
	fr = 'P.',&lt;br /&gt;
	de = 'S.',&lt;br /&gt;
	es = 'P.',&lt;br /&gt;
	en = 'P.',&lt;br /&gt;
	it = 'P.',&lt;br /&gt;
	ru = 'С.',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nNumberOfPages = {&lt;br /&gt;
	en = 'p.',&lt;br /&gt;
	ru = 'с.',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local monthg = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', &amp;quot;сентября&amp;quot;, &amp;quot;октября&amp;quot;, &amp;quot;ноября&amp;quot;, &amp;quot;декабря&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
local PREFIX_CITEREF = &amp;quot;CITEREF_&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
local options_commas = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_short = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = false, preferids = false, short = true };&lt;br /&gt;
local options_commas_nolinks = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = true, preferids = false };&lt;br /&gt;
local options_commas_it = { separator = ', ', conjunction = ', ', format = function( src ) return &amp;quot;''&amp;quot; .. src .. &amp;quot;''&amp;quot; end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_it_short = { separator = ', ', conjunction = ', ', format = function( src ) return &amp;quot;''&amp;quot; .. src .. &amp;quot;''&amp;quot; end, nolinks = false, preferids = false, short = true };&lt;br /&gt;
local options_commas_it_nolinks = { separator = ', ', conjunction = ', ', format = function( src ) return &amp;quot;''&amp;quot; .. src .. &amp;quot;''&amp;quot; end, nolinks = true , preferids = false };&lt;br /&gt;
local options_citetypes = { separator = ' ', conjunction = ' ', format = function( src ) return 'citetype_' .. src end, nolinks = true , preferids = true };&lt;br /&gt;
&lt;br /&gt;
local options_commas_authors = { separator = ', ', conjunction = ', ', format = personNameToAuthorName, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_responsible = { separator = ', ', conjunction = ', ', format = personNameToResponsibleName, nolinks = false, preferids = false };&lt;br /&gt;
&lt;br /&gt;
local options_arxiv = { separator = '; ', conjunction = '; ', format = function( id ) return '[http://arxiv.org/abs/' .. id .. ' arXiv:' .. id .. ']' end, nolinks = true, preferids = false };&lt;br /&gt;
local options_doi = { separator = '; ', conjunction = '; ', format = function( doi ) return '[http://dx.doi.org/' .. doi .. ' doi:' .. doi .. ']' end, nolinks = true, preferids = false };&lt;br /&gt;
local options_issn = { separator = '; ', conjunction = '; ', format = function( issn ) return '[https://www.worldcat.org/issn/' .. issn .. ' ' .. issn .. ']' end, nolinks = true, preferids = false };&lt;br /&gt;
&lt;br /&gt;
function renderSource( context, src )&lt;br /&gt;
	options_commas_authors.format = personNameToAuthorName;&lt;br /&gt;
	options_commas_responsible.format = personNameToResponsibleName;&lt;br /&gt;
&lt;br /&gt;
	context.lang = getLangCode( getSingle( src.lang ) ) or i18nDefaultLanguage;&lt;br /&gt;
&lt;br /&gt;
	preprocessPlaces( src, context.lang );&lt;br /&gt;
&lt;br /&gt;
	src.title = src.title or getSingle( src.url ) or '\'\'(unspecified title)\'\''&lt;br /&gt;
&lt;br /&gt;
	if ( src.sourceId and not src.url ) then&lt;br /&gt;
		local entity = getEntity( context, src.sourceId );&lt;br /&gt;
		if ( entity.sitelinks and entity.sitelinks[ context.lang .. 'wikisource'] ) then&lt;br /&gt;
			src.url = ':' .. context.lang .. ':s:' .. entity.sitelinks[ context.lang .. 'wikisource' ].title;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( not src.year and src.dateOfPublication ) then&lt;br /&gt;
		local date = getSingle( src.dateOfPublication );&lt;br /&gt;
		src.year = mw.ustring.sub( date, 2, 5 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( not src.year and src.dateOfCreation ) then&lt;br /&gt;
		local date = getSingle( src.dateOfCreation );&lt;br /&gt;
		src.year = mw.ustring.sub( date, 2, 5 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = getPeopleAsWikitext( context, src.author, options_commas_authors );&lt;br /&gt;
	end&lt;br /&gt;
	if ( not isEmpty( result )) then&lt;br /&gt;
		result = '&amp;lt;i class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;' .. result .. '&amp;lt;/i&amp;gt; ';&lt;br /&gt;
	else&lt;br /&gt;
		result = '';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
 	if ( src.part ) then&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			result = result .. wrapInUrl( src.url, toString( context, src.part, options_commas_nolinks ) );&lt;br /&gt;
		else&lt;br /&gt;
			result = result .. toString( context, src.part, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. ' // ' .. toString( context, src.title, options_commas );&lt;br /&gt;
	else&lt;br /&gt;
		-- title only&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			result = result .. wrapInUrl( src.url, toString( context, src.title, options_commas_nolinks ) );&lt;br /&gt;
		else&lt;br /&gt;
			result = result .. toString( context, src.title, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
 	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.subtitle ) then&lt;br /&gt;
		result = result .. &amp;quot;: &amp;quot; .. toString( context, src.subtitle, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.originaltitle ) then&lt;br /&gt;
		result = result .. ' = ' .. toString( context, src.originaltitle, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.publication ) then&lt;br /&gt;
		if ( type( src.publication.title or '') ~= 'string' ) then error('type of src.publication.title is not string but ' .. type( src.publication.title ) ) end;&lt;br /&gt;
&lt;br /&gt;
		result = result .. ' // ' .. toString( context, src.publication, options_commas_it_short );&lt;br /&gt;
		if ( src.publication.subtitle ) then&lt;br /&gt;
			result = result .. ': ' .. toString( context, src.publication.subtitle, options_commas_it_short );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	result = result .. '&amp;lt;span class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;';&lt;br /&gt;
&lt;br /&gt;
	if ( src.editor ) then&lt;br /&gt;
		local prefix = i18nEditors[ context.lang ] or i18nEditors[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' / ' .. prefix .. getPeopleAsWikitext( context, src.editor, options_commas_responsible );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.edition ) then&lt;br /&gt;
		result = result .. ' — ' .. toString( context, src.edition, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.place or src.publisher or src.year ) then&lt;br /&gt;
		result = result .. ' — ';&lt;br /&gt;
		if ( src.place ) then&lt;br /&gt;
			result = result .. toString( context, src.place, options_commas_short );&lt;br /&gt;
			if ( src.publisher or src.year ) then&lt;br /&gt;
				result = result .. ': ';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.publisher ) then&lt;br /&gt;
			result = result .. toString( context, src.publisher, options_commas_short );&lt;br /&gt;
			if ( src.year ) then&lt;br /&gt;
				result = result .. ', ';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.year ) then&lt;br /&gt;
			result = result .. toString( context, src.year, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
 	if ( src.volume or src.issue ) then&lt;br /&gt;
 		result = result .. ' — ';&lt;br /&gt;
		if ( src.volume ) then&lt;br /&gt;
			local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
			result = result .. letter .. '&amp;amp;nbsp;' .. toString( context, src.volume, options_commas );&lt;br /&gt;
			if ( src.issue ) then&lt;br /&gt;
				local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. ', ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.issue, options_commas ) .. '.';&lt;br /&gt;
			else&lt;br /&gt;
				result = result .. '.';&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
			result = result .. letter .. '&amp;amp;nbsp;' .. toString( context, src.issue, options_commas ) .. '.';&lt;br /&gt;
		end&lt;br /&gt;
 	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.pages ) then&lt;br /&gt;
		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.pages, options_commas )  .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.numberOfPages ) then&lt;br /&gt;
		local letter = i18nNumberOfPages[ context.lang ] or i18nNumberOfPages[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. toString( context, src.numberOfPages, options_commas ) .. '&amp;amp;nbsp;' .. letter;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.bookSeries ) then&lt;br /&gt;
		result = result .. ' — (' .. toString( context, src.bookSeries, options_commas )&lt;br /&gt;
&lt;br /&gt;
	 	if ( src.bookSeriesVolume or src.bookSeriesIssue ) then&lt;br /&gt;
	 		result = result .. '; ';&lt;br /&gt;
			if ( src.bookSeriesVolume ) then&lt;br /&gt;
				local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. letter .. '&amp;amp;nbsp;' .. toString( context, src.bookSeriesVolume, options_commas );&lt;br /&gt;
				if ( src.bookSeriesIssue ) then&lt;br /&gt;
					local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
					result = result .. ', ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.bookSeriesIssue, options_commas );&lt;br /&gt;
				else&lt;br /&gt;
					result = result;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. letter .. '&amp;amp;nbsp;' .. toString( context, src.bookSeriesIssue, options_commas );&lt;br /&gt;
			end&lt;br /&gt;
	 	end&lt;br /&gt;
&lt;br /&gt;
		result = result .. ')';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.isbn ) then&lt;br /&gt;
		result = result .. ' — ISBN ' .. toString( context, src.isbn, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.issn ) then&lt;br /&gt;
		result = result .. ' — ISSN ' .. toString( context, src.issn, options_issn );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.doi ) then&lt;br /&gt;
		result = result .. ' — ' .. toString( context, src.doi, options_doi );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.arxiv ) then&lt;br /&gt;
		result = result .. ' — ' .. toString( context, src.arxiv, options_arxiv );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.sourceId ) then&lt;br /&gt;
		if ( src.type and src.sourceId ) then&lt;br /&gt;
			-- wrap into span to target from JS&lt;br /&gt;
			result = '&amp;lt;span class=&amp;quot;wikidata_cite ' .. toString( context, src.type, options_citetypes ) .. '&amp;quot; data-entity-id=&amp;quot;' .. getSingle( src.sourceId ) .. '&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
		else&lt;br /&gt;
			result = '&amp;lt;span class=&amp;quot;wikidata_cite citetype_unknown&amp;quot; data-entity-id=&amp;quot;' .. getSingle( src.sourceId ) .. '&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.accessdate ) then&lt;br /&gt;
			local date = getSingle( src.accessdate );&lt;br /&gt;
			local pattern = &amp;quot;(%-?%d+)%-(%d+)%-(%d+)T&amp;quot;;&lt;br /&gt;
			local y, m, d = mw.ustring.match( date , pattern );&lt;br /&gt;
			y,m,d = tonumber(y),tonumber(m),tonumber(d);&lt;br /&gt;
			result = result .. &amp;quot; &amp;lt;small&amp;gt;Проверено &amp;quot; .. tostring(d) .. &amp;quot; &amp;quot; .. monthg[m]  .. &amp;quot; &amp;quot; .. tostring(y) .. &amp;quot;.&amp;lt;/small&amp;gt;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	result = result .. '&amp;lt;/span&amp;gt;';&lt;br /&gt;
&lt;br /&gt;
    -- append invisible links to all elements used by source for tracking purposes&lt;br /&gt;
    local result = result .. '&amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;';&lt;br /&gt;
	for key, entity in pairs( context.cache ) do&lt;br /&gt;
		result = result .. '&amp;lt;a href=&amp;quot;https://wikidata.org' ..  mw.uri.localUrl('Track:' .. key).path .. '&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;';&lt;br /&gt;
	end&lt;br /&gt;
    result = result ..'&amp;lt;/div&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	return {text = result, code = src.code};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderShortReference( src )&lt;br /&gt;
	context = {&lt;br /&gt;
		cache = {},&lt;br /&gt;
		lang = getSingle( src.lang ) or i18nDefaultLanguage;&lt;br /&gt;
	};&lt;br /&gt;
	src.title = src.title or '\'\'(unspecified title)\'\''&lt;br /&gt;
&lt;br /&gt;
	local result = '[[#' .. PREFIX_CITEREF .. src.code .. '|';&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = result .. toString( context, src.author, options_authors_nolinks );&lt;br /&gt;
	else&lt;br /&gt;
		result = result .. toString( context, src.title, options_commas_it_nolinks );&lt;br /&gt;
	end&lt;br /&gt;
	result = result .. ']]'&lt;br /&gt;
&lt;br /&gt;
	if ( src.year ) then&lt;br /&gt;
		result = result .. ', ' .. toString( context, src.year, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.volume ) then&lt;br /&gt;
		local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.volume, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.issue ) then&lt;br /&gt;
		local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.issue, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.pages ) then&lt;br /&gt;
		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString( context, src.pages, options_commas )  .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPeopleAsWikitext( context, value, options )&lt;br /&gt;
	if ( type( value ) == 'string' ) then&lt;br /&gt;
		return options.format( value );&lt;br /&gt;
	elseif ( type( value ) == 'table' ) then&lt;br /&gt;
		if ( value.id ) then&lt;br /&gt;
			-- this is link&lt;br /&gt;
			if ( options.preferids ) then&lt;br /&gt;
				return value.id;&lt;br /&gt;
			else&lt;br /&gt;
				if ( options.nolinks ) then&lt;br /&gt;
					return getPersonNameAsLabel( context, value.id, value.label, options );&lt;br /&gt;
				else&lt;br /&gt;
					return getPersonNameAsWikitext( context, value.id, value.label, options );&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local resultList = {};&lt;br /&gt;
		for i, tableValue in pairs( value ) do&lt;br /&gt;
			local nextWikitext = getPeopleAsWikitext( context, tableValue, options );&lt;br /&gt;
			if ( not isEmpty( nextWikitext ) ) then&lt;br /&gt;
				table.insert( resultList, nextWikitext );&lt;br /&gt;
				if ( #resultList == 4 ) then&lt;br /&gt;
					-- even 4 is too much, but we preserve 4th to mark that &amp;quot;it's more than 3&amp;quot;&lt;br /&gt;
					break;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local resultWikitext = '';&lt;br /&gt;
		for i, wikitext in pairs( resultList ) do&lt;br /&gt;
			if ( i == 4 ) then&lt;br /&gt;
				resultWikitext = resultWikitext .. ( i18nEtAl[ context.lang ] or i18nEtAlDefault );&lt;br /&gt;
				break;&lt;br /&gt;
			end&lt;br /&gt;
			if ( i ~= 1 ) then&lt;br /&gt;
				resultWikitext = resultWikitext .. ', ';&lt;br /&gt;
			end&lt;br /&gt;
			resultWikitext = resultWikitext .. wikitext;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return resultWikitext;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return options.format( '(unknown type)' );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPersonNameAsWikitext( context, entityId, customLabel, options )&lt;br /&gt;
	local personName = getPersonNameAsLabel( context, entityId, customLabel, options);&lt;br /&gt;
	if ( personName == nil ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local link = getElementLink( context, entityId, nil );&lt;br /&gt;
	return wrapInUrl( link, personName );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPersonNameAsLabel( context, entityId, providedLabel, options )&lt;br /&gt;
	-- would custom label provided we don't need to check entity at all&lt;br /&gt;
	if ( not isEmpty( providedLabel ) ) then&lt;br /&gt;
		mw.log( 'Custom label provided for ' .. entityId );&lt;br /&gt;
		return options.format( providedLabel );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local entity = getEntity( context, entityId );&lt;br /&gt;
	if ( not entity ) then return '\'\'(entity ' .. entityId .. ' is missing)\'\'' end;&lt;br /&gt;
	if ( not isInstanceOf( entity, 'Q5' ) ) then&lt;br /&gt;
		mw.log( 'Entity ' .. entityId .. ' is not a person' );&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local personName = nil;&lt;br /&gt;
	-- support only labels so far&lt;br /&gt;
	if ( entity.labels[ context.lang ] ) then&lt;br /&gt;
		personName = entity.labels[ context.lang ].value;&lt;br /&gt;
		mw.log('Got person name of ' .. entityId .. ' from label: «' .. personName .. '»' )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( isEmpty( personName ) ) then&lt;br /&gt;
		return '\'\'(not translated to ' .. context.lang .. ')\'\'';&lt;br /&gt;
	else&lt;br /&gt;
		return options.format( personName );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function personNameToAuthorName( fullName )&lt;br /&gt;
	if ( not fullName ) then return fullName; end&lt;br /&gt;
&lt;br /&gt;
	local f, i, o = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)\,%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$' );&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Fa, I. O.» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;'&lt;br /&gt;
			.. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;'&lt;br /&gt;
			.. mw.ustring.sub( o, 1, 1 ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local f1, f2, i = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a[%a\-]*)\,%s(%a[%a\-]*)%s*$' );&lt;br /&gt;
	if ( f1 ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Fa Fa, I» match' );&lt;br /&gt;
		return f1 .. '&amp;amp;nbsp;' .. f2 .. '&amp;amp;nbsp;'&lt;br /&gt;
			.. mw.ustring.sub( i, 1, 1 ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «I. O. Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. i .. '.&amp;amp;nbsp;' .. o .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, i3, f = mw.ustring.match( fullName, '^%s*(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «I. O. ?. Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. i1 .. '.&amp;amp;nbsp;' .. i2 .. '.&amp;amp;nbsp;' .. i3 .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Joel J. P. C. Rodrigues&lt;br /&gt;
	local i1, i2, i3, i4, f = mw.ustring.match( fullName, '^%s*(%a)[%a\-]+%s(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «I. O. ?. Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. i1 .. '.&amp;amp;nbsp;' .. i2 .. '.&amp;amp;nbsp;' .. i3 .. '.&amp;amp;nbsp;' .. i4 .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a)\.%s(%a[%a\-]*)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im O. Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. o .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im Ot Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+оглы%s+(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im Ot оглы Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, f = mw.ustring.match( fullName, '^%s*(%a[%a\-\']+)%s(%a[%a\-\']+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToAuthorName: «' .. fullName .. '»: have «Im Fa» match' );&lt;br /&gt;
		return f .. '&amp;amp;nbsp;' .. mw.ustring.sub( i, 1, 1 ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	mw.log( 'Unmatched any pattern: «' .. fullName .. '»' );&lt;br /&gt;
	return fullName;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function personNameToResponsibleName( fullName )&lt;br /&gt;
	if ( not fullName ) then return fullName; end&lt;br /&gt;
&lt;br /&gt;
	local f, i, o = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)\,%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$' );&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Fa, I. O.» match' );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local f1, f2, i = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a[%a\-]*)\,%s(%a[%a\-]*)%s*$' );&lt;br /&gt;
	if ( f1 ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Fa Fa, I» match' );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. '&amp;amp;nbsp;' .. f1 .. '&amp;amp;nbsp;' .. f2;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'v: «' .. fullName .. '»: have «I. O. Fa» match' );&lt;br /&gt;
		return i .. '.&amp;amp;nbsp;' .. o .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, i3, f = mw.ustring.match( fullName, '^%s*(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «I. O. ?. Fa» match' );&lt;br /&gt;
		return  i1 .. '.&amp;amp;nbsp;' .. i2 .. '.&amp;amp;nbsp;' .. i3 .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Joel J. P. C. Rodrigues&lt;br /&gt;
	local i1, i2, i3, i4, f = mw.ustring.match( fullName, '^%s*(%a)[%a\-]+%s(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «I. O. ?. Fa» match' );&lt;br /&gt;
		return  i1 .. '.&amp;amp;nbsp;' .. i2 .. '.&amp;amp;nbsp;' .. i3 .. '.&amp;amp;nbsp;' .. i4 .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a)\.%s(%a[%a\-]*)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Im O. Fa» match' );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. o .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]*)%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Im Ot Fa» match' );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, '^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+оглы%s+(%a[%a\-]+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Im Ot оглы Fa» match' );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. mw.ustring.sub( o, 1, 1 ) .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, f = mw.ustring.match( fullName, '^%s*(%a[%a\-\']+)%s(%a[%a\-\']+)%s*$');&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( 'personNameToResponsibleName: «' .. fullName .. '»: have «Im Fa» match' );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. '.&amp;amp;nbsp;' .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	mw.log( 'Unmatched any pattern: «' .. fullName .. '»' );&lt;br /&gt;
	return fullName;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSource( frame )&lt;br /&gt;
	p.currentFrame = frame;&lt;br /&gt;
&lt;br /&gt;
	local arg = frame.args[1];&lt;br /&gt;
	local refAnchor = frame.args['ref'];&lt;br /&gt;
	local refAnchorYear = frame.args['ref-year'];&lt;br /&gt;
	local args = {};&lt;br /&gt;
	args.refAnchor = frame.args['ref'];&lt;br /&gt;
	args.refAnchorYear = frame.args['ref-year'];&lt;br /&gt;
	args.part = frame.args['part'];&lt;br /&gt;
	args.pages = frame.args['pages'];&lt;br /&gt;
&lt;br /&gt;
	return p.renderSourceImpl( mw.text.trim( arg ), args );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSourceImpl( entityId, args )&lt;br /&gt;
	args = args or {};&lt;br /&gt;
&lt;br /&gt;
	local snaks = {};&lt;br /&gt;
	snaks.P248 = { toWikibaseEntityIdSnak( 'P248', entityId ) };&lt;br /&gt;
	copyArgsToSnaks( args, snaks );&lt;br /&gt;
&lt;br /&gt;
	local rendered = renderReferenceImpl( mw.wikibase.getEntity(), { snaks = snaks }, args.refAnchor, args.refAnchorYear );&lt;br /&gt;
	if ( rendered ) then return rendered.text end;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderReference( frame, currentEntity, reference )&lt;br /&gt;
	p.currentFrame = frame;&lt;br /&gt;
&lt;br /&gt;
	-- template call&lt;br /&gt;
	if ( frame and not currentEntity and not reference ) then&lt;br /&gt;
		local args = frame.args;&lt;br /&gt;
		if ( #frame.args == 0 ) then&lt;br /&gt;
			args = frame:getParent().args;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local snaks = {};&lt;br /&gt;
&lt;br /&gt;
		if ( args[1] ) then&lt;br /&gt;
			snaks.P248 = { toWikibaseEntityIdSnak( &amp;quot;P248&amp;quot;, args[1] ) };&lt;br /&gt;
		end&lt;br /&gt;
		copyArgsToSnaks( args, snaks );&lt;br /&gt;
&lt;br /&gt;
		currentEntity = mw.wikibase.getEntity();&lt;br /&gt;
		reference = { snaks = snaks };&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rendered = renderReferenceImpl( currentEntity, reference );&lt;br /&gt;
&lt;br /&gt;
	if ( not rendered ) then&lt;br /&gt;
		return '';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
	local code = rendered.code or rendered.text;&lt;br /&gt;
	result = frame:extensionTag( 'ref', rendered.text, {name = code} ) .. '[[Category:Википедия:Статьи с источниками из Викиданных]]';&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderReferenceImpl( currentEntity, reference, refAnchor, refAnchorYear )&lt;br /&gt;
	if ( not reference.snaks ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- контекст, содержит также кеш элементов&lt;br /&gt;
	local context = {&lt;br /&gt;
		cache = {},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- данные в простом формате, согласованном с модулями формирования библиографического описания&lt;br /&gt;
	local data = {};&lt;br /&gt;
&lt;br /&gt;
    -- забрать данные из reference&lt;br /&gt;
    populateDataFromClaims( context, nil, reference.snaks, data )&lt;br /&gt;
&lt;br /&gt;
	-- update ref name with ref-specific properties&lt;br /&gt;
	if ( data.code ) then&lt;br /&gt;
		if ( data.part ) then data.code = data.code .. '-' .. getSingle( data.part ) end&lt;br /&gt;
		if ( data.pages ) then data.code = data.code .. '-' .. getSingle( data.pages ) end&lt;br /&gt;
		if ( data.volume ) then data.code = data.code .. '-' .. getSingle( data.volume ) end&lt;br /&gt;
		if ( data.issue ) then data.code = data.code .. '-' .. getSingle( data.issue ) end&lt;br /&gt;
		if ( data.url ) then data.code = data.code .. '-' .. getSingle( data.url ) end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	expandSpecials( context, currentEntity, reference, data );&lt;br /&gt;
&lt;br /&gt;
	local sourceEntity = nil;&lt;br /&gt;
	if ( data.sourceId ) then&lt;br /&gt;
		sourceEntity = getEntity( context, data.sourceId );&lt;br /&gt;
		if ( sourceEntity ) then&lt;br /&gt;
			populateSourceDataImpl( context, sourceEntity, data );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( data.publication ) then&lt;br /&gt;
		expandPublication( context, sourceEntity, data );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	expandBookSeries( context, data );&lt;br /&gt;
&lt;br /&gt;
	if ( next( data ) == nil ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rendered;&lt;br /&gt;
	if ( p.short ) then&lt;br /&gt;
		rendered = renderShortReference( data );&lt;br /&gt;
		if ( mw.ustring.len( rendered.text ) == 0 ) then&lt;br /&gt;
			return nil;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	else&lt;br /&gt;
		rendered = renderSource( context, data );&lt;br /&gt;
		if ( mw.ustring.len( rendered.text ) == 0 ) then&lt;br /&gt;
			return nil;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if ( refAnchor ) then&lt;br /&gt;
			local anchorValue = 'CITEREF' .. refAnchor .. ( coalesce( refAnchorYear, data.year ) or '' );&lt;br /&gt;
			rendered.text = '&amp;lt;span class=&amp;quot;citation&amp;quot; id=&amp;quot;' .. mw.uri.anchorEncode( anchorValue ) .. '&amp;quot;&amp;gt;' .. rendered.text .. '&amp;lt;/span&amp;gt;';&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return rendered;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=554&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=554&amp;oldid=prev"/>
		<updated>2015-01-04T21:07:56Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
&lt;br /&gt;
local i18nDefaultLanguage = 'Q7737';&lt;br /&gt;
local i18nEditors = {&lt;br /&gt;
	Q150	= '',			-- French&lt;br /&gt;
	Q1321	= '',			-- Spanish&lt;br /&gt;
	Q1860	= '',			-- English&lt;br /&gt;
	Q7737	= 'под ред. ',	-- Russian&lt;br /&gt;
	Q188	= 'Hrsg.: ',		-- German&lt;br /&gt;
}&lt;br /&gt;
local i18nVolume = {&lt;br /&gt;
	Q150	= 'Vol.',	-- French&lt;br /&gt;
	Q1321	= 'Vol.',	-- Spanish&lt;br /&gt;
	Q1860	= 'Vol.',	-- English&lt;br /&gt;
	Q7737	= 'Т.',		-- Russian&lt;br /&gt;
}&lt;br /&gt;
local i18nPage = {&lt;br /&gt;
	Q150 = 'P.',	-- French&lt;br /&gt;
	Q188 = 'S.',	-- German&lt;br /&gt;
	Q1321 = 'P.',	-- Spanish&lt;br /&gt;
	Q1860 = 'P.',	-- English&lt;br /&gt;
	Q7737 = 'С.',	-- Russian&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local monthg = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',&lt;br /&gt;
    'июля', 'августа', &amp;quot;сентября&amp;quot;, &amp;quot;октября&amp;quot;, &amp;quot;ноября&amp;quot;, &amp;quot;декабря&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
local PREFIX_CITEREF = &amp;quot;CITEREF_&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
function p.deepcopy(orig)&lt;br /&gt;
    local orig_type = type(orig)&lt;br /&gt;
    local copy&lt;br /&gt;
    if orig_type == 'table' then&lt;br /&gt;
        copy = {}&lt;br /&gt;
        for orig_key, orig_value in pairs(orig) do&lt;br /&gt;
            copy[orig_key] = p.deepcopy( orig_value );&lt;br /&gt;
        end&lt;br /&gt;
	else -- number, string, boolean, etc&lt;br /&gt;
        copy = orig&lt;br /&gt;
    end&lt;br /&gt;
    return copy&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local options_commas = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_nolinks = { separator = ', ', conjunction = ', ', format = function( src ) return src end, nolinks = true, preferids = false };&lt;br /&gt;
local options_commas_it = { separator = ', ', conjunction = ', ', format = function( src ) return &amp;quot;''&amp;quot; .. src .. &amp;quot;''&amp;quot; end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_it_nolinks = { separator = ', ', conjunction = ', ', format = function( src ) return &amp;quot;''&amp;quot; .. src .. &amp;quot;''&amp;quot; end, nolinks = true , preferids = false };&lt;br /&gt;
local options_citetypes = { separator = ' ', conjunction = ' ', format = function( src ) return 'citetype_' .. src end, nolinks = true , preferids = true };&lt;br /&gt;
&lt;br /&gt;
function renderSource( src )&lt;br /&gt;
	mw.logObject( src );&lt;br /&gt;
&lt;br /&gt;
	if ( src.code and not src.url ) then&lt;br /&gt;
		src.url = mw.wikibase.sitelink( src.code ) or ( 'd:' .. src.code )&lt;br /&gt;
		src.url = ':' .. src.url;&lt;br /&gt;
	end&lt;br /&gt;
	src.lang = getSingle( src.lang ) or i18nDefaultLanguage;&lt;br /&gt;
	src.title = src.title or getSingle( src.url ) or '\'\'(unspecified title)\'\''&lt;br /&gt;
&lt;br /&gt;
	if ( not src.year and src.date ) then&lt;br /&gt;
		local date = getSingle( src.date );&lt;br /&gt;
		src.year = mw.ustring.sub( date, 9, 12 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = '';&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = result .. toString( src.author, options_commas_it );&lt;br /&gt;
	end&lt;br /&gt;
	if ( string.len( result ) ~= 0 ) then&lt;br /&gt;
		result = result .. ' ';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
 	if ( src.part ) then&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			local url = getSingle( src.url );&lt;br /&gt;
			if ( string.sub( url, 1, 1 ) == ':' ) then&lt;br /&gt;
				result = result .. '[[' .. url .. '|' .. toString( src.part, options_commas_nolinks ) .. ']]';&lt;br /&gt;
			else&lt;br /&gt;
				result = result .. '[' .. url .. ' ' .. toString( src.part, options_commas_nolinks ) .. ']';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. ' // ' .. toString( src.title, options_commas );&lt;br /&gt;
	else&lt;br /&gt;
		-- title only&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			local url = getSingle( src.url );&lt;br /&gt;
			if ( string.sub( url, 1, 1 ) == ':' ) then&lt;br /&gt;
				result = result .. '[[' .. url .. '|' .. toString( src.title, options_commas_nolinks ) .. ']]';&lt;br /&gt;
			else&lt;br /&gt;
				result = result .. '[' .. url .. ' ' .. toString( src.title, options_commas_nolinks ) .. ']';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
 	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.originaltitle ) then&lt;br /&gt;
		result = result .. ' = ' .. toString( src.originaltitle, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.publication ) then&lt;br /&gt;
		result = result .. ' // ' .. toString( src.publication, options_commas_it );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.editor ) then&lt;br /&gt;
		local prefix = i18nEditors[ src.lang ] or i18nEditors[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' / ' .. prefix .. toString( src.editor, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.place or src.publisher or src.year ) then&lt;br /&gt;
		result = result .. ' — ';&lt;br /&gt;
		if ( src.place ) then&lt;br /&gt;
			result = result .. toString( src.place, options_commas );&lt;br /&gt;
			if ( src.publisher or src.year ) then&lt;br /&gt;
				result = result .. ': ';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.publisher ) then&lt;br /&gt;
			result = result .. toString( src.publisher, options_commas );&lt;br /&gt;
			if ( src.year ) then&lt;br /&gt;
				result = result .. ', ';&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.year ) then&lt;br /&gt;
			result = result .. toString( src.year, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.volume ) then&lt;br /&gt;
		local letter = i18nVolume[ src.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString(src.volume, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.issue ) then&lt;br /&gt;
		result = result .. ' — №&amp;amp;nbsp;' .. toString(src.issue, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.page ) then&lt;br /&gt;
		local letter = i18nPage[ src.lang ] or i18nPage[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString(src.page, options_commas )  .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.isbn13 ) then&lt;br /&gt;
		result = result .. ' — ISBN ' .. toString( src.isbn13, options_commas );&lt;br /&gt;
	elseif ( src.isbn10 ) then&lt;br /&gt;
		result = result .. ' — ISBN ' .. toString( src.isbn10, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.issn ) then&lt;br /&gt;
		result = result .. ' — ISSN ' .. toString( src.issn, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
	if ( src.doi ) then&lt;br /&gt;
		result = result .. ' — [http://dx.doi.org/' .. mw.uri.encode( src.doi ) .. ' DOI&amp;amp;nbsp;' .. src.doi .. ']';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.entityId ) then&lt;br /&gt;
		if ( src.type and src.entityId ) then&lt;br /&gt;
			-- wrap into span to target from JS&lt;br /&gt;
			result = '&amp;lt;span class=&amp;quot;' .. toString( src.type, options_citetypes ) .. '&amp;quot; data-entity-id=&amp;quot;' .. getSingle( src.entityId ) .. '&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
		else&lt;br /&gt;
			result = '&amp;lt;span class=&amp;quot;citetype_unknown&amp;quot; data-entity-id=&amp;quot;' .. getSingle( src.entityId ) .. '&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.accessdate ) then&lt;br /&gt;
			local date = getSingle( src.accessdate );&lt;br /&gt;
			local pattern = &amp;quot;(%-?%d+)%-(%d+)%-(%d+)T&amp;quot;;&lt;br /&gt;
			local y, m, d = mw.ustring.match( date , pattern );&lt;br /&gt;
			y,m,d = tonumber(y),tonumber(m),tonumber(d);&lt;br /&gt;
			result = result .. &amp;quot; &amp;lt;small&amp;gt;Проверено &amp;quot; .. tostring(d) .. &amp;quot; &amp;quot; .. monthg[m]  .. &amp;quot; &amp;quot; .. tostring(y) .. &amp;quot;.&amp;lt;/small&amp;gt;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return {text = result, code = src.code};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderShortReference( src )&lt;br /&gt;
	src.lang = getSingle( src.lang ) or i18nDefaultLanguage;&lt;br /&gt;
	src.title = src.title or '\'\'(unspecified title)\'\''&lt;br /&gt;
&lt;br /&gt;
	local result = '[[#' .. PREFIX_CITEREF .. src.code .. '|';&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = result .. toString( src.author, options_commas_it_nolinks );&lt;br /&gt;
	else&lt;br /&gt;
		result = result .. toString( src.title, options_commas_it_nolinks );&lt;br /&gt;
	end&lt;br /&gt;
	result = result .. ']]'&lt;br /&gt;
&lt;br /&gt;
	if ( src.year ) then&lt;br /&gt;
		result = result .. ', ' .. toString( src.year, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.volume ) then&lt;br /&gt;
		local letter = i18nVolume[ src.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString(src.volume, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.issue ) then&lt;br /&gt;
		result = result .. ' — №&amp;amp;nbsp;' .. toString(src.issue, options_commas ) .. '.';&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.page ) then&lt;br /&gt;
		local letter = i18nPage[ src.lang ] or i18nPage[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. ' — ' .. letter .. '&amp;amp;nbsp;' .. toString(src.page, options_commas )  .. '.';&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getSingle( value )&lt;br /&gt;
	if ( not value ) then&lt;br /&gt;
		return;&lt;br /&gt;
	end&lt;br /&gt;
	if ( type( value ) == 'string' ) then&lt;br /&gt;
		return value;&lt;br /&gt;
	elseif ( type( value ) == 'table' ) then&lt;br /&gt;
		if ( value.id ) then&lt;br /&gt;
			return value.id;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		for i, tableValue in pairs( value ) do&lt;br /&gt;
			return getSingle( tableValue );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return '(unknown)';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function toString( value, options )&lt;br /&gt;
	if ( type( value ) == 'string' ) then&lt;br /&gt;
		return options.format( value );&lt;br /&gt;
	elseif ( type( value ) == 'table' ) then&lt;br /&gt;
		if ( value.id ) then&lt;br /&gt;
			-- this is link&lt;br /&gt;
			if ( options.preferids ) then&lt;br /&gt;
				return options.format( value.id );&lt;br /&gt;
			else&lt;br /&gt;
				if ( options.nolinks ) then&lt;br /&gt;
					return options.format( value.label or mw.wikibase.label( value.id ) or '\'\'(untranslated title)\'\'' );&lt;br /&gt;
				else&lt;br /&gt;
					return options.format( renderLink( value.id, value.label ) );&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local resultList = {};&lt;br /&gt;
		for i, tableValue in pairs( value ) do&lt;br /&gt;
			table.insert( resultList, toString( tableValue, options ) );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return mw.text.listToText( resultList, options.separator, options.conjunction);&lt;br /&gt;
	else&lt;br /&gt;
		return options.format( '(unknown type)' );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return '';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderLink( entityId, text )&lt;br /&gt;
	if ( not entityId ) then&lt;br /&gt;
		error(&amp;quot;entityId is not specified&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	local actualText = text or mw.wikibase.label( entityId ) or '\'\'(untranslated)\'\'';&lt;br /&gt;
	local link = mw.wikibase.sitelink( entityId ) or ( ':d:' .. entityId )&lt;br /&gt;
	return '[[' .. link .. '|' .. actualText .. ']]';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Expand special types of references when additional data could be found in OTHER entity properties&lt;br /&gt;
function expandSpecials( currentEntity, reference, data )&lt;br /&gt;
	if ( reference.snaks.P248&lt;br /&gt;
			and reference.snaks.P248[1]&lt;br /&gt;
			and reference.snaks.P248[1].datavalue&lt;br /&gt;
			and reference.snaks.P248[1].datavalue.value[&amp;quot;numeric-id&amp;quot;]) then&lt;br /&gt;
		local sourceId = &amp;quot;Q&amp;quot; .. reference.snaks.P248[1].datavalue.value[&amp;quot;numeric-id&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
		-- Gemeinsame Normdatei -- specified by P227&lt;br /&gt;
		if ( sourceId == 'Q36578' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P227', data, 'title', { format = function( gnd ) return 'Record #' .. gnd; end } );&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P227', data, 'url', { format = function( gnd ) return 'http://d-nb.info/gnd/' .. gnd .. '/'; end } );&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- BNF -- specified by P268&lt;br /&gt;
		if ( sourceId == 'Q15222191' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P268', data, 'title', { format = function( id ) return 'Record #' .. id; end } );&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P268', data, 'url', { format = function( id ) return 'http://catalogue.bnf.fr/ark:/12148/cb' .. id; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P268', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Find a Grave -- specified by P535&lt;br /&gt;
		if ( sourceId == 'Q63056' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P535', data, 'url', { format = function( id ) return 'http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&amp;amp;GRid=' .. id; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P535', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Gran Enciclopèdia Catalana -- specified by P1296&lt;br /&gt;
		if ( sourceId == 'Q2664168' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P1296', data, 'url', { format = function( id ) return 'http://www.enciclopedia.cat/enciclop%C3%A8dies/gran-enciclop%C3%A8dia-catalana/EC-GEC-' .. id .. '.xml'; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P1296', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Encyclopædia Britannica online -- specified by P1417&lt;br /&gt;
		if ( sourceId == 'Q5375741' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P1417', data, 'url', { format = function( id ) return 'http://global.britannica.com/EBchecked/topic/' .. id .. '/'; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P1417', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Electronic Jewish Encyclopedia (Elektronnaja Evrejskaja Entsiklopedia) -- specified by P1438&lt;br /&gt;
		if ( sourceId == 'Q1967250' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P1438', data, 'url', { format = function( id ) return 'http://www.eleven.co.il/article/' .. id; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P1438', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- sports-reference.com -- specified by P1447&lt;br /&gt;
		if ( sourceId == 'Q18002875' ) then&lt;br /&gt;
			appendMainSnaks( currentEntity, 'P1447', data, 'url', { format = function( id ) return 'http://www.sports-reference.com/olympics/athletes/' .. id .. '.html'; end } );&lt;br /&gt;
			expandSpecialsQualifiers( currentEntity, 'P1447', data );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- do we have appropriate record in P1343 ?&lt;br /&gt;
		local claims = findClaimsByValue( currentEntity, 'P1343', sourceId );&lt;br /&gt;
		if ( claims and #claims ~= 0 ) then&lt;br /&gt;
			appendQualifiers( claims, 'P958', data, 'part', {} );&lt;br /&gt;
			appendQualifiers( claims, 'P854', data, 'url', {} );&lt;br /&gt;
			appendQualifiers( claims, 'P357', data, 'title', {} );&lt;br /&gt;
			appendQualifiers( claims, 'P478', data, 'volume', {} );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function expandSpecialsQualifiers( entity, propertyId, result )&lt;br /&gt;
	if ( entity.claims and entity.claims[propertyId] ) then&lt;br /&gt;
		local claims = entity.claims[propertyId];&lt;br /&gt;
		appendQualifiers( claims, 'P958', result, 'part', {} );&lt;br /&gt;
		appendQualifiers( claims, 'P854', result, 'url', {} );&lt;br /&gt;
		appendQualifiers( claims, 'P357', result, 'title', {} );&lt;br /&gt;
		appendQualifiers( claims, 'P478', result, 'volume', {} );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function findClaimsByValue( entity, propertyId, value )&lt;br /&gt;
	local result = {};&lt;br /&gt;
	if ( entity and entity.claims and entity.claims[propertyId] ) then&lt;br /&gt;
		for i, claim in pairs( entity.claims[propertyId] ) do&lt;br /&gt;
			if ( claim.mainsnak and claim.mainsnak.datavalue ) then&lt;br /&gt;
				local datavalue = claim.mainsnak.datavalue;&lt;br /&gt;
				if ( datavalue.type == &amp;quot;string&amp;quot; and datavalue.value == value &lt;br /&gt;
					or datavalue.type == &amp;quot;wikibase-entityid&amp;quot; and datavalue.value[&amp;quot;entity-type&amp;quot;] == &amp;quot;item&amp;quot; and tostring( datavalue.value[&amp;quot;numeric-id&amp;quot;] ) == mw.ustring.sub( value, 2 ) ) then&lt;br /&gt;
					table.insert( result, claim );&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function appendMainSnaks( entity, propertyId, result, property, options )&lt;br /&gt;
	if ( entity.claims and entity.claims[propertyId] ) then&lt;br /&gt;
		for i, claim in pairs( entity.claims[propertyId] ) do&lt;br /&gt;
			if ( claim.mainsnak and claim.mainsnak.datavalue ) then&lt;br /&gt;
				appendImpl( claim.mainsnak.datavalue, result, property, options );&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function appendSnaks( allSnaks, snakPropertyId, result, property, options )&lt;br /&gt;
	if ( allSnaks and allSnaks[ snakPropertyId ] ) then&lt;br /&gt;
		for k, snak in pairs( allSnaks[ snakPropertyId ] ) do&lt;br /&gt;
			if ( snak and snak.datavalue ) then&lt;br /&gt;
				appendImpl( snak.datavalue, result, property, options );&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function appendQualifiers( claims, qualifierPropertyId, result, property, options )&lt;br /&gt;
	for i, claim in pairs( claims ) do&lt;br /&gt;
		if ( claim.qualifiers and claim.qualifiers[ qualifierPropertyId ] ) then&lt;br /&gt;
			for k, qualifier in pairs( claim.qualifiers[ qualifierPropertyId ] ) do&lt;br /&gt;
				if ( qualifier and qualifier.datavalue ) then&lt;br /&gt;
					appendImpl( qualifier.datavalue, result, property, options );&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;
function appendImpl( datavalue, result, property, options )&lt;br /&gt;
	if ( datavalue.type == 'string' ) then&lt;br /&gt;
		local value = datavalue.value;&lt;br /&gt;
		if ( options.format ) then&lt;br /&gt;
			value = options.format( value );&lt;br /&gt;
		end&lt;br /&gt;
		if ( not result[property] ) then&lt;br /&gt;
			result[property] = {};&lt;br /&gt;
		elseif ( type( result[property] ) == 'string' or ( type( result[property] ) == 'table' and type( result[property].id ) == 'string' ) ) then&lt;br /&gt;
			result[property] = { result[property] };&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( result[property], value);&lt;br /&gt;
	elseif ( datavalue.type == 'wikibase-entityid' ) then&lt;br /&gt;
		local value = datavalue.value;&lt;br /&gt;
		if ( not result[property] ) then&lt;br /&gt;
			result[property] = {};&lt;br /&gt;
		elseif ( type( result[property] ) == 'string' or ( type( result[property] ) == 'table' and type( result[property].id ) == 'string' ) ) then&lt;br /&gt;
			result[property] = { result[property] };&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( result[property], { id = 'Q' .. value[&amp;quot;numeric-id&amp;quot;] });&lt;br /&gt;
	elseif datavalue.type == 'time' then&lt;br /&gt;
		local value = datavalue.value;&lt;br /&gt;
		if ( options.format ) then&lt;br /&gt;
			value = options.format( value );&lt;br /&gt;
		end&lt;br /&gt;
		if ( not result[property] ) then&lt;br /&gt;
			result[property] = {};&lt;br /&gt;
		elseif ( type( result[property] ) == 'string' or ( type( result[property] ) == 'table' and type( result[property].id ) == 'string' ) ) then&lt;br /&gt;
			result[property] = { result[property] };&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( result[property], tostring( value.time ));&lt;br /&gt;
    end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function expandPublication( data )&lt;br /&gt;
	local publication = data.publication;&lt;br /&gt;
&lt;br /&gt;
	-- use only first one&lt;br /&gt;
	if ( type( publication ) == 'table' and publication[1] and publication[1].id ) then&lt;br /&gt;
		data.publication = publication[1];&lt;br /&gt;
		publication = data.publication;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( publication and publication.id ) then&lt;br /&gt;
		populateSourceData( data, publication.id );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function loadSafe( entityId )&lt;br /&gt;
	if ( entityId == nil ) then&lt;br /&gt;
		error('entityId to load is not specified');&lt;br /&gt;
	end&lt;br /&gt;
	local status, result = pcall( function() return mw.loadData( 'Module:Source/' .. entityId ) end );&lt;br /&gt;
	if ( status == true ) then&lt;br /&gt;
		return true, result;&lt;br /&gt;
	end&lt;br /&gt;
	return false, nil;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function populateSourceData( data, sourceId )&lt;br /&gt;
	local loaded, sourceData = loadSafe( sourceId );&lt;br /&gt;
	if ( loaded and sourceData ) then&lt;br /&gt;
		populateSourceDataImpl( data, sourceData );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function populateSourceDataImpl( data, sourceData )&lt;br /&gt;
	for key, value in pairs( sourceData ) do&lt;br /&gt;
		if ( not data[key] and key ~= 'title' ) then&lt;br /&gt;
			data[key] = value;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- if we already have title, than it would be the current one, otherwise move it to publication&lt;br /&gt;
	if ( sourceData.title ) then&lt;br /&gt;
		if ( not data.title ) then&lt;br /&gt;
			data.title = sourceData.title;&lt;br /&gt;
		else&lt;br /&gt;
			if ( not data.publication ) then&lt;br /&gt;
				data.publication = sourceData.title;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function updateWithRef( reference, src )&lt;br /&gt;
	-- specified&lt;br /&gt;
	if ( reference.snaks.O662 ) then&lt;br /&gt;
		local cid = reference.snaks.P662[1].datavalue.value;&lt;br /&gt;
		src.code = src.code .. '-cid:' .. cid;&lt;br /&gt;
		src.title = 'Compound Summary for: CID ' .. cid;&lt;br /&gt;
		src.url = 'http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=' .. cid;&lt;br /&gt;
		src.publication = { id = 'Q278487', label = 'PubChem' };&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	appendSnaks( reference.snaks, 'P50', src, 'author', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P364', src, 'lang', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P958', src, 'part', {} ); -- part&lt;br /&gt;
	appendSnaks( reference.snaks, 'P357', src, 'title', {} ); -- title&lt;br /&gt;
	appendSnaks( reference.snaks, 'P854', src, 'url', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P1433', src, 'publication', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P123', src, 'publisher', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P304', src, 'page', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P478', src, 'volume', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P577', src, 'date', {} );&lt;br /&gt;
	appendSnaks( reference.snaks, 'P813', src, 'accessdate', {} );&lt;br /&gt;
	return src;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSource( frame )&lt;br /&gt;
	local arg = frame.args[1];&lt;br /&gt;
	return p.renderSourceImpl( arg );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSourceImpl( entityId )&lt;br /&gt;
	local value = {};&lt;br /&gt;
	value[&amp;quot;numeric-id&amp;quot;] = string.sub( entityId , 2);&lt;br /&gt;
	local snak = { datavalue = { value =value } };&lt;br /&gt;
	local properties = {};&lt;br /&gt;
	properties[1] = snak;&lt;br /&gt;
	return renderReferenceImpl( {}, { snaks = { P248 = properties } } ).text;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderReference( frame, currentEntity, reference )&lt;br /&gt;
	&lt;br /&gt;
	-- template call&lt;br /&gt;
	if ( frame and not currentEntity and not reference ) then&lt;br /&gt;
		local value = {};&lt;br /&gt;
		value[&amp;quot;numeric-id&amp;quot;] = string.sub( frame.args[1] , 2);&lt;br /&gt;
		local snak = { datavalue = { value =value } };&lt;br /&gt;
		local properties = {};&lt;br /&gt;
		properties[1] = snak;&lt;br /&gt;
		&lt;br /&gt;
		currentEntity = mw.wikibase.getEntityObject();&lt;br /&gt;
		reference = { snaks = { P248 = properties } };&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rendered = renderReferenceImpl( currentEntity, reference );&lt;br /&gt;
&lt;br /&gt;
	if ( not rendered ) then&lt;br /&gt;
		return '';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
	local code = rendered.code or mw.text.encode( rendered.text );&lt;br /&gt;
	result = frame:extensionTag( 'ref', rendered.text, {name = code} ) .. '[[К:Википедия:Статьи с источниками из Викиданных]]';&lt;br /&gt;
&lt;br /&gt;
	if ( not rendered.found ) then&lt;br /&gt;
		result = result .. '[[К:Википедия:Статьи с неоформленными источниками из Викиданных]]';&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderReferenceImpl( currentEntity, reference )&lt;br /&gt;
	if ( not reference.snaks ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local data = {};&lt;br /&gt;
	local entityId, found, sourceData;&lt;br /&gt;
	if ( reference.snaks.P248 ) then&lt;br /&gt;
		entityId = &amp;quot;Q&amp;quot; .. reference.snaks.P248[1].datavalue.value[&amp;quot;numeric-id&amp;quot;];&lt;br /&gt;
		found, sourceData = loadSafe( entityId );&lt;br /&gt;
		data.code = entityId;&lt;br /&gt;
		data.entityId = entityId;&lt;br /&gt;
	else&lt;br /&gt;
		found = true;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	updateWithRef( reference, data );&lt;br /&gt;
	expandSpecials( currentEntity, reference, data );&lt;br /&gt;
	if ( entityId ) then&lt;br /&gt;
		if ( found and sourceData ) then&lt;br /&gt;
			populateSourceDataImpl( data, sourceData );&lt;br /&gt;
		else&lt;br /&gt;
			if ( data.title ) then&lt;br /&gt;
				data.publication = data.publication or { id = entityId, label = mw.wikibase.label( entityId ) };&lt;br /&gt;
			else&lt;br /&gt;
				data.title = { id = entityId, label = mw.wikibase.label( entityId ) };&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	expandPublication( data );&lt;br /&gt;
&lt;br /&gt;
	local rendered;&lt;br /&gt;
	if ( p.short ) then&lt;br /&gt;
		local toStore = p.deepcopy( data );&lt;br /&gt;
		if (not p.list ) then&lt;br /&gt;
			p.list = {};&lt;br /&gt;
		end&lt;br /&gt;
		p.list[toStore.code] = toStore;&lt;br /&gt;
		rendered = renderShortReference( data );&lt;br /&gt;
	else&lt;br /&gt;
		rendered = renderSource( data );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( mw.ustring.len( rendered.text ) == 0 ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	rendered.found = found;&lt;br /&gt;
	return rendered;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
</feed>