if (!Array.prototype.Add){Array.prototype.Add= function (item){ this[this.length]=item; } ; }if (!Array.prototype.InsertAt){Array.prototype.InsertAt= function (index,item){ this[index]=item; } ; }if (!Array.prototype.Remove){Array.prototype.Remove= function (item){var i1y= false; for (var i=0; i<this.length; i++){if (item==this[i]){i1y= true; }if (i1y){ this[i]=this[i+1]; }}if (i1y){ this.length-=1; }} ; }if (!Array.prototype.RemoveAt){Array.prototype.RemoveAt= function (index){for (var i=index; 0<=i && i<this.length; i++){ this[i]=this[i+1]; }if (0<=index && index<this.length){ this.length-=1; }} ; }if (!Array.prototype.Clear){Array.prototype.Clear= function (){ this.length=0; } ; }if (!Array.prototype.I1y){Array.prototype.I1y= function (item){for (var i=0; i<this.length; i++){if (this[i]==item){return i; }}return -1; } ; }if (!Array.prototype.Serialize){Array.prototype.Serialize= function (o1z){var O1z=""; if (typeof(o1z)=="u\x6e\x64efined" || o1z==null){o1z="\054"; }if (this.length<=0){return O1z; }for (var i=0; i<this.length; i++){O1z=O1z+((O1z=="")?"":o1z)+this[i].toString(); }return O1z; } ; }if (!Array.prototype.ClassicSort){Array.prototype.ClassicSort= function (){var i,k; for (i=this.length-1; i>=0; i--){for (k=0; k<=i; k++){if (this[k+1]<this[k]){var o1i=this[k]; this[k]=this[k+1]; this[k+1]=o1i; }}}return l1z; };}if (!Array.prototype.ToNumber){Array.prototype.ToNumber= function (i1z){switch (typeof(i1z)){case "numb\x65r":return i1z; case "\x73\x74\x72ing":var I1z=parseInt(i1z); if (!o20(I1z) && ("C"+I1z=="C"+i1z)){return I1z; }break; default:break; }};}if (!Array.prototype.HighestIndex){Array.prototype.HighestIndex= function (){var O20; for (var i in this ){var l20=this.ToNumber(i); if ((typeof(l20)!="\x75\x6edefined") && ((typeof(O20)=="undefin\x65d") || (l20>O20))){O20=l20; }}return O20; };}if (!Array.prototype.push){Array.prototype.push= function (){var O20=this.HighestIndex(); if (typeof(O20)=="un\x64efine\x64"){O20=-1; }for (var i=0; i<arguments.length; i++){ this[ ++O20]=arguments[i]; }};}if (!Array.prototype.pop){Array.prototype.pop= function (){var O20=this.HighestIndex(); var i20; if (typeof(O20)!="un\x64efined"){i20=this[O20]; delete this[O20]; }return i20; };}if (!Array.prototype.shift){Array.prototype.shift= function (){var I20=this[0]; for (var i=1; i<this.length; ++i){ this[i-1]=this[i]; } this.length--; return I20; };}if (!Array.prototype.unshift){Array.prototype.unshift= function (){var i=unshift.arguments.length; for (var k=this.length-1; k>=0; --k){ this[k+i]=this[k]; }for (k=0; k<i; ++k){ this[k]=unshift.o21[k]; }};}if (!String.prototype.Format){String.prototype.Format= function (){var O21=this ; for (var i=0; i<this.Format.arguments.length; i++){O21=O21.replace(new RegExp("\134\x7b"+i+"\x5c}","\x69g"),this.Format.arguments[i]); }return O21; };}if (!String.prototype.StartsWith){String.prototype.StartsWith= function (value){if (typeof(value)!="\x73\x74\x72in\x67"){return false; }return (0==this.indexOf(value)); };}if (!String.prototype.EndsWith){String.prototype.EndsWith= function (value){if (typeof(value)!="\163tring"){return false; }return (this.lastIndexOf(value)+value.length==this.length-1); };}if (!String.prototype.IsEmpty){String.prototype.IsEmpty= function (){var O21=this ; return (O21=="")? true : false; };}function Hashtable(){ this.Keys=new Array(); this.Values=new Array(); }Hashtable.prototype.Add= function (l21){if (!l21.ID){return; }var i21=l21.ID; if (this.IsValidKey(i21)){ this.Values[this.Values.length]=l21; if (this.Keys[i21]){ this.Keys[i21].length++; this.Keys[i21][this.Keys[i21].length-1]=(this.Values.length-1); }else { this.Keys[i21]=new Array(1); this.Keys[i21][0]=(this.Values.length-1); }}};Hashtable.prototype.AddItem= function (I21,o22){if (!I21 || !o22){return; }if (this.IsValidKey(I21)){ this.Values[this.Values.length]=o22; if (this.Keys[I21]){ this.Keys[I21].length++; this.Keys[I21][this.Keys[I21].length-1]=(this.Values.length-1); }else { this.Keys[I21]=new Array(1); this.Keys[I21][0]=(this.Values.length-1); }}};Hashtable.prototype.O22= function (l22){for (var i=0; i<l22.length; i++){ this.Add(l22[i]); }};Hashtable.prototype.Remove= function (i21){ delete this.Values[this.Keys[i21][0]]; delete this.Keys[i21]; };Hashtable.prototype.A= function (i21){if (this.Keys[i21]){return this.Values[(this.Keys[i21][0])]; }else {return null; }};Hashtable.prototype.Set= function (l21){var i21=l21.ID; if (this.Keys[i21]){ this.Values[(this.Keys[i21][0])]=l21; }};Hashtable.prototype.CopyTo= function (i22){for (var i=0; i<this.Values.length; i++){i22[i]=this.Values[i].toSource;}};Hashtable.prototype.I22= function (i22){for (var i=0; i<this.Keys.length; i++){}};Hashtable.prototype.o23= function (i21){if (this.Keys[i21]){var O23=this.Keys[i21]; O23=this.Keys[i21].length; return ((O23<=1)? true : false); }else {return true; }};Hashtable.prototype.IsValidKey= function (l23){var i23=""+l23; var I23=i23.charCodeAt(0); return ((I23<48) || (I23>57)); };Hashtable.prototype.length= function (){return this.Values.length; };
