<?xml version="1.0" encoding="utf-16" ?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
                version="1.1" >

<xsl:output method="xml" indent="yes" encoding="utf-8" />


<xsl:template name="gt">
  <xsl:param name="string" />
  <xsl:param name="characters" select="document('dchar.xml')//char"/>
  <xsl:variable name="char" select="$characters[contains($string, .)][1]"/>
  <xsl:choose>
   	<xsl:when test="$char">
	  <xsl:call-template name="gt">
	    <xsl:with-param name="string" select="substring-before($string, $char)"/>
	    <xsl:with-param name="characters" select="$characters"/>
	  </xsl:call-template>
	  <xsl:choose>
		<xsl:when test="$char='Ѹ'">
		  <xsl:text>Оу</xsl:text>
		</xsl:when>
		<xsl:when test="$char='ѹ'">
		  <xsl:text>оу</xsl:text>
		</xsl:when>
		<xsl:when test="$char=''">
		  <xsl:text>ОУ</xsl:text>
		</xsl:when>
		<xsl:when test="$char=''">
		  <xsl:text>л҄</xsl:text>
		</xsl:when>
   <xsl:when test="$char='&#x0417;'">
      <xsl:text>&#xA640;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#x0437;'">
      <xsl:text>&#xA641;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#x042B;'">
      <xsl:text>&#xA650;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#x044B;'">
      <xsl:text>&#xA651;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE028;'">
      <xsl:text>&#xA658;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE029;'">
      <xsl:text>&#xA659;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02A;'">
      <xsl:text>&#xA65C;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02B;'">
      <xsl:text>&#xA65D;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02C;'">
      <xsl:text>&#xA654;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02D;'">
      <xsl:text>&#xA655;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02E;'">
      <xsl:text>&#xA64E;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE02F;'">
      <xsl:text>&#xA64F;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE030;'">
      <xsl:text>&#xA648;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE031;'">
      <xsl:text>&#xA649;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE032;'">
      <xsl:text>&#x0454;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE033;'">
      <xsl:text>&#x047B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE034;'">
      <xsl:text>&#x047B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE035;'">
      <xsl:text>&#xA669;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE037;'">
      <xsl:text>&#x0417;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE038;'">
      <xsl:text>&#x0437;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE039;'">
      <xsl:text>&#xA646;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE03A;'">
      <xsl:text>&#xA647;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE03B;'">
      <xsl:text>&#xA642;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE03C;'">
      <xsl:text>&#xA643;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE03D;'">
      <xsl:text>&#xA644;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE03E;'">
      <xsl:text>&#xA645;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE040;'">
      <xsl:text>&#xA65A;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE041;'">
      <xsl:text>&#xA65B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE044;'">
      <xsl:text>&#xA65E;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE045;'">
      <xsl:text>&#xA65F;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE046;'">
      <xsl:text>&#x042B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE047;'">
      <xsl:text>&#x044B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE04B;'">
      <xsl:text>&#xA64A;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE04C;'">
      <xsl:text>&#xA64B;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE04D;'">
      <xsl:text>&#xA656;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE04E;'">
      <xsl:text>&#xA657;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE04F;'">
      <xsl:text>&#xA64C;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE050;'">
      <xsl:text>&#xA64D;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE051;'">
      <xsl:text>&#xA652;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE052;'">
      <xsl:text>&#xA653;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE055;'">
      <xsl:text>&#x0360;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE056;'">
      <xsl:text>&#x2E3A;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE057;'">
      <xsl:text>&#x2E3A;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE058;'">
      <xsl:text>&#x033E;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE05B;'">
      <xsl:text>&#x20DD;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE05C;'">
      <xsl:text>&#xA670;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE05D;'">
      <xsl:text>&#xA671;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE05E;'">
      <xsl:text>&#xA67E;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE05F;'">
      <xsl:text>&#xA67C;</xsl:text>
   </xsl:when>
   <xsl:when test="$char='&#xE065;'">
      <xsl:text>&#x0483;</xsl:text>
   </xsl:when>
	  </xsl:choose>
	  <xsl:call-template name="gt">
	    <xsl:with-param name="string" select="substring-after($string, $char)"/>
	    <xsl:with-param name="characters" select="$characters"/>
	  </xsl:call-template>
	</xsl:when>
	<xsl:otherwise>
	  <xsl:value-of select="translate($string, 'ЗзЫы', 'ꙀꙁꙐꙑꙘꙙꙜꙝꙔꙕꙎꙏꙈꙉєѻѻꙩЗзꙆꙇꙂꙃꙄꙅꙚꙛꙞꙟЫыꙊꙋꙖꙗꙌꙍꙒꙓ͠⸺⸺̾⃝꙰꙱꙾꙼҃')"/>
	</xsl:otherwise>
  </xsl:choose>
</xsl:template>



<xsl:template match="*[@lang='os']/text()">
  <xsl:call-template name="gt">
	<xsl:with-param name="string" select="."/>
  </xsl:call-template>
</xsl:template>


 <xsl:template match="@*|*|processing-instruction()|comment()">
  <xsl:copy>
    <xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()" />
  </xsl:copy>
</xsl:template>


</xsl:stylesheet>

