﻿//-->
System.Class.RegisterNamespace("System.Convert");System.Convert.Base64Array=function(){this.S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";this.CA=new Array();this.IA=new Array();this.InitializeClass=function(){var c=new String;for(var i=0;i<this.S.length;i++){c=this.S.charAt(i);this.CA[i]=c;this.IA[c]=i;}};this.InitializeClass();};System.Convert.ToBase64String=function(b,wrap){var B64=new System.Convert.Base64Array();var bLen=(b)?b.length:0;if(bLen==0)return new Array(0);var eLen=Math.floor(bLen/3)*3;var cCnt=((bLen-1)/3+1)<<2;var dLen=cCnt+(wrap?(cCnt-1)/76<<1:0);var dArr=new Array(dLen);for(var s=0,d=0,cc=0;s<eLen;){var i=(b[s++]&0xff)<<16|(b[s++]&0xff)<<8|(b[s++]&0xff);dArr[d++]=B64.CA[(i>>>18)&0x3f];dArr[d++]=B64.CA[(i>>>12)&0x3f];dArr[d++]=B64.CA[(i>>>6)&0x3f];dArr[d++]=B64.CA[i&0x3f];if(wrap&& ++cc==19&&d<dLen-2){dArr[d++]='\r';dArr[d++]='\n';cc=0;}}var left=bLen-eLen;if(left>0){var i=((b[eLen]&0xff)<<10)|(left==2?((b[bLen-1]&0xff)<<2):0);dArr[dLen-4]=B64.CA[i>>12];dArr[dLen-3]=B64.CA[(i>>>6)&0x3f];dArr[dLen-2]=(left==2)?B64.CA[i&0x3f]:'=';dArr[dLen-1]='=';}return dArr.join("");};System.Convert.FromBase64String=function(s,fix){var B64=new System.Convert.Base64Array();if(fix){var regex=new RegExp("[^"+B64.S+"]","g");s=s.replace(regex,"");}var sLen=s.length;if(sLen==0)return new Array(0);var sIx=0,eIx=sLen-1;var pad=s.charAt(eIx)=='='?(s.charAt(eIx-1)=='='?2:1):0;var cCnt=eIx-sIx+1;var sepLn=(s.charAt(76)=='\r')?(cCnt/78):0;var sepCnt=sLen>76?(sepLn<<1):0;var len=((cCnt-sepCnt)*6>>3)-pad;var bytes=new Array(len);var d=0;var eLen=Math.floor(len/3)*3;for(var cc=0;d<eLen;){var i=B64.IA[s.charAt(sIx++)]<<18|B64.IA[s.charAt(sIx++)]<<12|B64.IA[s.charAt(sIx++)]<<6|B64.IA[s.charAt(sIx++)];bytes[d++]=(i>>16);bytes[d++]=((i&0xFFFF)>>8);bytes[d++]=(i&0xFF);if(sepCnt>0&& ++cc==19){sIx+=2;cc=0;}}if(d<len){var i=0;for(var j=0;sIx<=(eIx-pad);j++){i|=B64.IA[s.charAt(sIx++)]<<(18-j*6);}for(var r=16;d<len;r-=8){var cropBits=Math.pow(2,r+8)-1;bytes[d++]=((i&cropBits)>>r);}}return bytes;};System.Convert.UTF8ToBase64String=function(s){var bytes=System.Text.Encoding.UTF8.GetBytes(s);return System.Convert.ToBase64String(bytes);};System.Convert.Base64StringToUTF8=function(s){var bytes=System.Convert.FromBase64String(s);return System.Text.Encoding.UTF8.GetString(bytes);};System.Convert.HexStringToBytes=function(s){if(s.length%2)return;if(s.indexOf("0x")==0||s.indexOf("0X")==0){s=s.substring(2);}var byteArray=new Array();for(var i=0;i<s.length;i+=2){byteArray[Math.floor(i/2)]=parseInt(s.slice(i,i+2),16);}return byteArray;};System.Convert.BytesToHexString=function(bytes,separator){var sb=new Array();var s=new String;if(!bytes)return;for(var i=0;i<bytes.length;i++){var b=bytes[i];try{if(b<=0xF)sb.push('0'+b.toString(16));else sb.push(b.toString(16));}catch(ex){sb.push("__");}}var sep=(separator)?separator:"";return sb.join(sep);}