Your IP : 18.118.4.130


Current Path : /usr/local/mgr5/skins/dragon/
Upload File :
Current File : //usr/local/mgr5/skins/dragon/desktop.xsl

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mgr="http://ispsystem.com/xslplugin" exclude-result-prefixes="mgr">
  <xsl:output method="html" encoding="UTF-8" indent="yes"></xsl:output>
  <xsl:variable name="theme" select="/doc/@theme"></xsl:variable>
  <xsl:variable name="binary" select="/doc/@binary"></xsl:variable>
  <xsl:variable name="logo" select="/doc/@logo"></xsl:variable>
  <xsl:variable name="localdir" select="/doc/@localdir"></xsl:variable>
  <xsl:variable name="themepath">
    <xsl:value-of select="concat($theme, $localdir)"></xsl:value-of>
  </xsl:variable>
  <xsl:variable name="host" select="/doc/@host"></xsl:variable>
  <xsl:variable name="hostname" select="/doc/user/@hostname"></xsl:variable>
  <xsl:variable name="msg" select="/doc/messages"></xsl:variable>
  <xsl:variable name="redirect" select="/doc/loginform/redirect"></xsl:variable>
  <xsl:variable name="lang" select="/doc/loginform/@lang"></xsl:variable>
  <xsl:variable name="baseurl" select="concat(/doc/@host, /doc/@binary)"></xsl:variable>
  <xsl:variable name="title" select="key('msg', 'title')"></xsl:variable>

  <xsl:variable name="startform1">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="/doc/mainmenu/@startform"></xsl:with-param>
      <xsl:with-param name="from" select="'>'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;gt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="startform">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="$startform1"></xsl:with-param>
      <xsl:with-param name="from" select="'&lt;'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;lt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="starttab1">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="/doc/mainmenu/@starttab"></xsl:with-param>
      <xsl:with-param name="from" select="'>'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;gt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="starttab">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="$starttab1"></xsl:with-param>
      <xsl:with-param name="from" select="'&lt;'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;lt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="startformdrawer1">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="/doc/mainmenu/@startformdrawer"></xsl:with-param>
      <xsl:with-param name="from" select="'>'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;gt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="startformdrawer">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="$startformdrawer1"></xsl:with-param>
      <xsl:with-param name="from" select="'&lt;'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;lt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>


 <xsl:variable name="startpage1">
   <xsl:call-template name="replace">
     <xsl:with-param name="input" select="/doc/mainmenu/@startpage"></xsl:with-param>
     <xsl:with-param name="from" select="'>'"></xsl:with-param>
     <xsl:with-param name="to" select="'&amp;gt;'"></xsl:with-param>
   </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="startpage">
    <xsl:call-template name="replace">
      <xsl:with-param name="input" select="$startpage1"></xsl:with-param>
      <xsl:with-param name="from" select="'&lt;'"></xsl:with-param>
      <xsl:with-param name="to" select="'&amp;lt;'"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>


 <xsl:template match="/">

    <xsl:choose>
      <xsl:when test="/doc/@binary != '/ispmgr' and /doc/@binary != '/manager/ispmgr'">
        <script>
          window.location = '?theme=orion';
        </script>
      </xsl:when>
      <xsl:when test="/doc/ok and /doc/ok/@type = 'url'">
        <script>
          window.location = '<xsl:value-of select="/doc/ok" disable-output-escaping="yes"/>';
        </script>
      </xsl:when>
    <xsl:otherwise>
    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html></xsl:text>
      <html lang="{/doc/@lang}">
        <head>
          <meta charset="utf-8"/>
          <title>
            <xsl:choose> <xsl:when test="$title != ''"><xsl:value-of
            select="$title"></xsl:value-of></xsl:when> <xsl:otherwise><xsl:value-of
            select="/doc/user/@hostname"></xsl:value-of></xsl:otherwise> </xsl:choose>
          </title>
          <base href="{$binary}"/>
          <meta name="viewport" content="width=device-width, user-scalable=no"/>
          <script>
            let colorScheme = localStorage.getItem('isp_color_scheme');

            if (!colorScheme) {
              colorScheme = 'light';
              localStorage.setItem('isp_color_scheme', colorScheme);
            } else if (colorScheme === 'auto') {
              if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
                colorScheme = 'dark';
              } else {
                colorScheme = 'light';
              }
            }

            document.documentElement.setAttribute('data-color-scheme', colorScheme);
          </script>
          <link rel="manifest" href="{$theme}manifest.ispmgr.webmanifest"/>
          <link id="favicon" rel="shortcut icon" href="{$themepath}{/doc/@favicon}" type="image/gif"/>
          <meta name="theme-color" content="#333333"/>
          <script type="text/javascript">
            /** pollifyll for entries */
            if (!Object.entries) {
              Object.entries = function( obj ){
                var ownProps = Object.keys( obj ),
                    i = ownProps.length,
                    resArray = new Array(i); // preallocate the Array
                while (i--)
                  resArray[i] = [ownProps[i], obj[ownProps[i]]];
                return resArray;
              };
            }
          </script>
          <script type="text/javascript">
            var pageInfo = {
               isBranding: <xsl:choose><xsl:when test="/doc/@localdir = 'default/'">0</xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose>,
               theme: "<xsl:value-of select="/doc/@theme"/>",
               baseUrl: "<xsl:value-of select="$baseurl"/>",
               commonPath: "/manimg/common/",
               level: "<xsl:value-of select="/doc/mainmenu/@level"/>",
               product: "<xsl:value-of select="/doc/product"/>",
               version: "<xsl:value-of select="/doc/version/core"/>",
               version_ispmanager: "<xsl:value-of select="/doc/version/ispmgr"/>",
               userName: "<xsl:value-of select="/doc/user/@name"/>",
               licid: "<xsl:value-of select="/doc/@licid"/>",
               userid: "<xsl:value-of select="/doc/user/@userid"/>",
               startpage: '<xsl:value-of select="$startpage"/>',
               startform: '<xsl:value-of select="mgr:fixquote($startform)"/>',
               startformdrawer: '<xsl:value-of select="mgr:fixquote($startformdrawer)"/>',
               starttab: '<xsl:value-of select="mgr:fixquote($starttab)"/>',
               binary: '<xsl:value-of select="$binary"/>',
               isModernmenu: Boolean(<xsl:if test="/doc/mainmenu/modernmenu/node">1</xsl:if>),
            };

            const themePath = '<xsl:value-of select="$host"/>' + '<xsl:value-of select="$themepath"/>'
            const logo = '<xsl:value-of select="/doc/@logo"/>';
            const appearance = '<xsl:value-of select="/doc/@appearance"/>';

            if (!appearance || logo !== 'logo-ispmgr.svg') {
              pageInfo.topBarLogo = `${themePath}${logo}`;
            } else {
              pageInfo.topBarLogo = `${themePath}${appearance}_${logo}`;
            }
          </script>
          <!--insert from branding-->
          <xsl:value-of select="/doc/addon/head/text()" disable-output-escaping="yes"></xsl:value-of>
        <link rel="stylesheet" href="/manimg/dragon/styles-DDMIH4FB.css"/></head>
        <body class="isp-main-panel-body">
          <div id="browser-too-old" style="display:none; color: red; padding: 20px;">
              <xsl:value-of select="$msg/msg[@name='browser_support']"></xsl:value-of>
          </div>
          <isp-root></isp-root>
          <noscript>Please enable JavaScript to continue using this
            application.</noscript>
          <!--insert from branding-->
          <xsl:value-of select="/doc/addon/body/text()" disable-output-escaping="yes"></xsl:value-of>
          <script>
!function(e,n,t){function r(e,n){return typeof e===n}function s(){var e,n,t,s,o,i,l;for(var a in w)if(w.hasOwnProperty(a)){if(e=[],n=w[a],n.name&amp;&amp;(e.push(n.name.toLowerCase()),n.options&amp;&amp;n.options.aliases&amp;&amp;n.options.aliases.length))for(t=0;t&lt;n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(s=r(n.fn,"function")?n.fn():n.fn,o=0;o&lt;e.length;o++)i=e[o],l=i.split("."),1===l.length?Modernizr[l[0]]=s:(!Modernizr[l[0]]||Modernizr[l[0]]instanceof Boolean||(Modernizr[l[0]]=new Boolean(Modernizr[l[0]])),Modernizr[l[0]][l[1]]=s),C.push((s?"":"no-")+l.join("-"))}}function o(e){var n=_.className,t=Modernizr._config.classPrefix||"";if(x&amp;&amp;(n=n.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&amp;&amp;(n+=" "+t+e.join(" "+t),x?_.className.baseVal=n:_.className=n)}function i(e,n){return!!~(""+e).indexOf(n)}function l(e,n){return function(){return e.apply(n,arguments)}}function a(e,n,t){var s;for(var o in e)if(e[o]in n)return t===!1?e[o]:(s=n[e[o]],r(s,"function")?l(s,t||n):s);return!1}function u(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):x?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function f(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function c(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function d(n,t,r){var s;if("getComputedStyle"in e){s=getComputedStyle.call(e,n,t);var o=e.console;if(null!==s)r&amp;&amp;(s=s.getPropertyValue(r));else if(o){var i=o.error?"error":"log";o[i].call(o,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else s=!t&amp;&amp;n.currentStyle&amp;&amp;n.currentStyle[r];return s}function p(){var e=n.body;return e||(e=u(x?"svg":"body"),e.fake=!0),e}function m(e,t,r,s){var o,i,l,a,f="modernizr",c=u("div"),d=p();if(parseInt(r,10))for(;r--;)l=u("div"),l.id=s?s[r]:f+(r+1),c.appendChild(l);return o=u("style"),o.type="text/css",o.id="s"+f,(d.fake?d:c).appendChild(o),d.appendChild(c),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(n.createTextNode(e)),c.id=f,d.fake&amp;&amp;(d.style.background="",d.style.overflow="hidden",a=_.style.overflow,_.style.overflow="hidden",_.appendChild(d)),i=t(c,e),d.fake?(d.parentNode.removeChild(d),_.style.overflow=a,_.offsetHeight):c.parentNode.removeChild(c),!!i}function g(n,r){var s=n.length;if("CSS"in e&amp;&amp;"supports"in e.CSS){for(;s--;)if(e.CSS.supports(c(n[s]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];s--;)o.push("("+c(n[s])+":"+r+")");return o=o.join(" or "),m("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==d(e,null,"position")})}return t}function y(e,n,s,o){function l(){c&amp;&amp;(delete T.style,delete T.modElem)}if(o=r(o,"undefined")?!1:o,!r(s,"undefined")){var a=g(e,s);if(!r(a,"undefined"))return a}for(var c,d,p,m,y,v=["modernizr","tspan","samp"];!T.style&amp;&amp;v.length;)c=!0,T.modElem=u(v.shift()),T.style=T.modElem.style;for(p=e.length,d=0;p&gt;d;d++)if(m=e[d],y=T.style[m],i(m,"-")&amp;&amp;(m=f(m)),T.style[m]!==t){if(o||r(s,"undefined"))return l(),"pfx"==n?m:!0;try{T.style[m]=s}catch(h){}if(T.style[m]!=y)return l(),"pfx"==n?m:!0}return l(),!1}function v(e,n,t,s,o){var i=e.charAt(0).toUpperCase()+e.slice(1),l=(e+" "+E.join(i+" ")+i).split(" ");return r(n,"string")||r(n,"undefined")?y(l,n,s,o):(l=(e+" "+P.join(i+" ")+i).split(" "),a(l,n,t))}function h(e,n,r){return v(e,t,t,n,r)}var C=[],w=[],S={_version:"3.6.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){w.push({name:e,fn:n,options:t})},addAsyncTest:function(e){w.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=S,Modernizr=new Modernizr;var _=n.documentElement,x="svg"===_.nodeName.toLowerCase(),b="Moz O ms Webkit",E=S._config.usePrefixes?b.split(" "):[];S._cssomPrefixes=E;var P=S._config.usePrefixes?b.toLowerCase().split(" "):[];S._domPrefixes=P;var z={elem:u("modernizr")};Modernizr._q.push(function(){delete z.elem});var T={style:z.elem.style};Modernizr._q.unshift(function(){delete T.style}),S.testAllProps=v,S.testAllProps=h,Modernizr.addTest("cssgridlegacy",h("grid-columns","10px",!0)),Modernizr.addTest("cssgrid",h("grid-template-rows","none",!0)),Modernizr.addTest("customelements","customElements"in e),s(),o(C),delete S.addTest,delete S.addAsyncTest;for(var N=0;N&lt;Modernizr._q.length;N++)Modernizr._q[N]();e.Modernizr=Modernizr}(window,document);
            if (!Modernizr.customelements || !Modernizr.cssgrid) {
              /** var for support old browser */
              var browserBanner = document.getElementById('browser-too-old');
              if (browserBanner) {
                browserBanner.style.display = 'block';
              }
            }
          </script>
          <div id="isp-skeleton-loader" class="loader">
            <style>
              .loader#isp-skeleton-loader {
                position: absolute;
                inset: 0;
                z-index: var(--isp-z-index-skeleton-loader);

                display: flex;
                flex-direction: column;

                min-width: 960px;
                height: 100%;

                opacity: 1;

                transition: opacity 500ms ease-out;
              }

              .loader_hidden {
                opacity: 0;
              }

              .loader__top-bar {
                height: 45px;

                background-color: var(--isp-c-darth-vader);
              }

              .top-bar {
                --isp-skeleton-main-color: var(--isp-c-creepy-cloud);
                --isp-skeleton-blink-color: var(--isp-c-stranger-things);

                display: flex;

                padding-right: 20px;
              }

              .top-bar__logo {
                display: flex;
                align-items: center;
                justify-items: center;

                width: 275px;

                padding: 10px 20px;
              }

              .top-bar__logo-image {
                width: 100%;
                height: 100%;

                object-fit: contain;
                object-position: left top;
              }

              .top-bar__tabs {
                display: flex;
                gap: 5px;

                padding: 10px 30px;
              }

              .top-bar__user {
                display: flex;
                gap: 5px;

                margin-left: auto;

                padding: 10px 0;
              }

              .loader__content {
                display: flex;
                flex: 1;
              }

              .loader__side-bar {
                width: 275px;
                height: 100%;

                overflow: hidden;

                background-color: var(--isp-dc-mimic);
              }

              .loader_collapsed .loader__side-bar {
                width: 65px;
              }

              .side-bar {
                --isp-skeleton-main-color: var(--isp-dc-reincarnation);
                --isp-skeleton-blink-color: var(--isp-dc-norilsk);
              }

              .side-bar__buttons {
                display: flex;
                flex-direction: row;
                justify-content: space-between;

                height: 55px;
                padding: 30px 20px 0;
              }

              .side-bar__tabs {
                display: flex;
                flex-direction: row;
                gap: 5px;
              }

              .loader_collapsed .side-bar__buttons > *:not(:first-child) {
                display: none;
              }

              .side-bar__menu {
                display: flex;
                flex-direction: column;
                gap: 15px;

                margin-top: 30px;
                padding: 0 20px;
              }

              .side-bar__menu-item {
                display: flex;
                gap: 10px;

                height: 15px;
              }

              .side-bar__menu-item > :first-child {
                flex-shrink: 0;
              }

              .loader_collapsed .side-bar__menu-item {
                gap: 0;

                justify-content: center;
              }

              .loader_collapsed .side-bar__menu-item > *:not(:first-child) {
                display: none;
              }

              .loader__main-page {
                display: flex;
                justify-content: center;
                align-items: center;

                flex: 1;
              }

              .skeleton {
                position: relative;

                display: block;

                width: var(--w, 100%);
                height: var(--h, 100%);

                animation: blink 1.5s ease-in-out infinite alternate;
                animation-delay: calc(200ms * var(--i, 0) + 50ms);

                border-radius: var(--isp-border-radius-main);

                background-color: var(
                  --isp-skeleton-main-color,
                  var(--isp-dc-norilsk)
                );
              }

              .skeleton_circle {
                border-radius: 50%;
              }

              @keyframes blink {
                0% {
                  background-color: var(
                    --isp-skeleton-main-color,
                    var(--isp-dc-norilsk)
                  );
                }

                100% {
                  background-color: var(
                    --isp-skeleton-blink-color,
                    var(--isp-dc-reincarnation)
                  );
                }
              }
            </style>

            <div class="loader__top-bar top-bar">
              <div class="top-bar__logo">
                <img id="isp-skeleton-loader__image" class="top-bar__logo-image"/>
              </div>
              <div class="top-bar__tabs">
                <span class="skeleton" style="--i: 1; --w: 35px"></span>
                <span class="skeleton" style="--i: 2; --w: 90px"></span>
                <span class="skeleton" style="--i: 3; --w: 90px"></span>
              </div>
              <div class="top-bar__user">
                <span class="skeleton" style="--i: 9; --w: 25px"></span>
                <span class="skeleton" style="--i: 10; --w: 25px"></span>
                <span class="skeleton" style="--i: 11; --w: 25px"></span>
                <span class="skeleton" style="--i: 12; --w: 70px"></span>
              </div>
            </div>
            <div class="loader__content">
              <div class="loader__side-bar side-bar">
                <div class="side-bar__buttons">
                  <span class="skeleton" style="--i: 2; --w: 25px"></span>

                  <div id="sidebar-tabs-skeleton" class="side-bar__tabs">
                    <span class="skeleton" style="--i: 3; --w: 25px"></span>
                    <span class="skeleton" style="--i: 4; --w: 25px"></span>
                    <span class="skeleton" style="--i: 5; --w: 25px"></span>
                  </div>

                  <span class="skeleton" style="--i: 6; --w: 25px"></span>
                </div>
                <div class="side-bar__menu">
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 7; --w: 15px"></span>
                    <span class="skeleton" style="--i: 8; --w: 160px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 9; --w: 15px"></span>
                    <span class="skeleton" style="--i: 10; --w: 200px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 11; --w: 15px"></span>
                    <span class="skeleton" style="--i: 12; --w: 120px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 13; --w: 15px"></span>
                    <span class="skeleton" style="--i: 14; --w: 160px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 15; --w: 15px"></span>
                    <span class="skeleton" style="--i: 16; --w: 130px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 17; --w: 15px"></span>
                    <span class="skeleton" style="--i: 18; --w: 180px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 19; --w: 15px"></span>
                    <span class="skeleton" style="--i: 20; --w: 80px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 21; --w: 15px"></span>
                    <span class="skeleton" style="--i: 22; --w: 120px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 23; --w: 15px"></span>
                    <span class="skeleton" style="--i: 24; --w: 140px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 25; --w: 15px"></span>
                    <span class="skeleton" style="--i: 26; --w: 170px"></span>
                  </div>
                  <div class="side-bar__menu-item">
                    <span class="skeleton skeleton_circle" style="--i: 27; --w: 15px"></span>
                    <span class="skeleton" style="--i: 28; --w: 130px"></span>
                  </div>
                </div>
              </div>
              <div class="loader__main-page"></div>
            </div>

            <script>
              const userName = pageInfo.userName || 'anonymous';
              const menuState = JSON.parse(
                localStorage.getItem(`isp_main_menu_state__${userName}`),
              );
              const hasMenuState = Boolean(menuState &amp;&amp; menuState.hasOwnProperty('menuExpanded'));
              const isExpanded = hasMenuState ? menuState.menuExpanded : true;

              if (!isExpanded) {
                document
                  .getElementById('isp-skeleton-loader')
                  .classList.add('loader_collapsed');
              }

              if (pageInfo.topBarLogo) {
                document.getElementById('isp-skeleton-loader__image').src =
                  pageInfo.topBarLogo;
              }

              if(pageInfo.isModernmenu){
                document.getElementById('sidebar-tabs-skeleton').remove();
              }
            </script>
          </div>
        <link rel="modulepreload" href="/manimg/dragon/chunk-P5ECH4E2.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-ZTSJF7T7.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-LEQN3D2Q.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-PK74BOF4.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-UIMIPCPG.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-BKOP7W6P.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-EI5KBZMB.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-WUJDRKKX.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-25EXV7IU.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-CPXWTLES.js"/><script src="/manimg/dragon/polyfills-LGTYHHQW.js" type="module"></script><script src="/manimg/dragon/main-5U3L6IFR.js" type="module"></script></body>
      </html>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- replace function -->
  <xsl:template name="replace">
    <xsl:param name="input"></xsl:param>
    <xsl:param name="from"></xsl:param>
    <xsl:param name="to"></xsl:param>
    <xsl:choose>
      <xsl:when test="contains($input, $from)">
        <xsl:value-of select="substring-before($input, $from)"></xsl:value-of>
        <xsl:value-of select="$to"></xsl:value-of>
        <xsl:call-template name="replace">
          <xsl:with-param name="input" select="substring-after($input, $from)"></xsl:with-param>
          <xsl:with-param name="from" select="$from"></xsl:with-param>
          <xsl:with-param name="to" select="$to"></xsl:with-param>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$input"></xsl:value-of>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>