auto-patch 280-dev-dev01-2024-01-19T16_41_58 * auto-patch 280-dev-dev01-2024-01-19T16_41_58
11 lines
31 KiB
JavaScript
11 lines
31 KiB
JavaScript
/*
|
|
Project: IP address range - CIDR converter
|
|
Copyright (c) 2019 tokkonopapa (tokkonopapa@yahoo.com)
|
|
The following libraries are ported to this program.
|
|
- S1lentium/IPTools (https://github.com/S1lentium/IPTools)
|
|
- kvz/locutus (https://github.com/kvz/locutus)
|
|
- MikeMcl/big.js (https://github.com/MikeMcl/big.js/)
|
|
- jQuery (https://jquery.com/)
|
|
This software is released under the MIT License.
|
|
*/
|
|
(function(B,S,y){function aa(){function a(c){if(!(this instanceof a))return void 0===c?aa():new a(c);if(c instanceof a)this.s=c.s,this.e=c.e,this.c=c.c.slice();else{var b,e;if(0===c&&0>1/c)c="-0";else if(!ia.test(c+=""))throw Error("Invalid number");"-"==c.charAt(0)?(c=c.slice(1),this.s=-1):this.s=1;-1<(b=c.indexOf("."))&&(c=c.replace(".",""));0<(e=c.search(/e/i))?(0>b&&(b=e),b+=+c.slice(e+1),c=c.substring(0,e)):0>b&&(b=c.length);var f=c.length;for(e=0;e<f&&"0"==c.charAt(e);++e);if(e===f)this.c=[this.e=0];else{for(;0<f&&"0"==c.charAt(--f););this.e=b-e-1;this.c=[];for(b=0;e<=f;)this.c[b++]=+c.charAt(e++)}}this.constructor=a}a.prototype=n;a.DP=20;a.RM=1;a.NE=-7;a.PE=21;a.version="5.0.2";return a}function N(a,c,b,e){var f=a.c,g=a.e+c+1;if(g<f.length){if(1===b)e=5<=f[g];else if(2===b)e=5<f[g]||5==f[g]&&(e||0>g||void 0!==f[g+1]||f[g-1]&1);else if(3===b)e=e||void 0!==f[g]||0>g;else if(e=!1,0!==b)throw Error("Invalid rounding mode");if(1>g)f.length=1,e?(a.e=-c,f[0]=1):f[0]=a.e=0;else{f.length=g--;if(e)for(;9<++f[g];)f[g]=0,g--||(++a.e,f.unshift(1));for(g=f.length;!f[--g];)f.pop()}}else if(0>b||3<b||b!==~~b)throw Error("Invalid rounding mode");return a}function J(a,c,b,e){var f=a.constructor,g=!a.c[0];if(void 0!==b){if(b!==~~b||b<(3===c)||1E6<b)throw Error(3===c?"Invalid precision":"Invalid decimal places");a=new f(a);b=e-a.e;a.c.length>++e&&N(a,b,f.RM);for(2===c&&(e=a.e+b+1);a.c.length<e;)a.c.push(0)}var h=a.e;var k=a.c.join("");b=k.length;if(2!==c&&(1===c||3===c&&e<=h||h<=f.NE||h>=f.PE))k=k.charAt(0)+(1<b?"."+k.slice(1):"")+(0>h?"e":"e+")+h;else if(0>h){for(;++h;)k="0"+k;k="0."+k}else if(0<h)if(++h>b)for(h-=b;h--;)k+="0";else h<b&&(k=k.slice(0,h)+"."+k.slice(h));else 1<b&&(k=k.charAt(0)+"."+k.slice(1));return 0>a.s&&(!g||4===c)?"-"+k:k}function ba(a){var c=Object.getPrototypeOf,b={},e=b.toString,f=b.hasOwnProperty;b=f.toString;if(!a||"[object Object]"!==e.call(a))return!1;a=c(a);if(!a)return!0;a=f.call(a,"constructor")&&a.constructor;return"function"===typeof a&&b.call(a)===b.call(Object)}function H(){var a,c,b,e=arguments[0]||{},f=1,g=arguments.length,h=!1;"boolean"===typeof e&&(h=e,e=arguments[f]||{},f++);"object"===typeof e||"function"===typeof e&&"number"!==typeof e.nodeType||(e={});f===g&&(e=this,f--);for(;f<g;f++)if(null!=(a=arguments[f]))for(c in a){var k=e[c];var m=a[c];e!==m&&(h&&m&&(ba(m)||(b=Array.isArray(m)))?(b?(b=!1,k=k&&Array.isArray(k)?k:[]):k=k&&ba(k)?k:{},e[c]=H(h,k,m)):m!==y&&(e[c]=m))}return e}function O(a,c){return p(a).plus(c)}function ca(){var a=/%%|%(?:(\d+)\$)?((?:[-+#0 ]|'[\s\S])*)(\d+)?(?:\.(\d*))?([\s\S])/g,c=arguments,b=0,e=c[b++],f=function(a,b,c,e){c||(c=" ");b=a.length>=b?"":Array(1+b-a.length>>>0).join(c);return e?a+b:b+a},g=function(a,b,c,e,g){var h=e-a.length;0<h&&(a=c||"0"!==g?f(a,e,g,c):[a.slice(0,b.length),f("",h,"0",!0),a.slice(b.length)].join(""));return a},h=function(a,b,c,e,h,k){a=f((a>>>0).toString(b),h||0,"0",!1);return g(a,"",c,e,k)},k=function(a,b,c,e,f){null!==e&&e!==y&&(a=a.slice(0,e));return g(a,"",b,c,f)},m=function(a,e,m,l,n,t){if("%%"===a)return"%";a=" ";var D=!1;var p="";var u;var F=0;for(u=m.length;F<u;F++)switch(m.charAt(F)){case " ":case "0":a=m.charAt(F);break;case "+":p="+";break;case "-":D=!0;break;case "'":F+1<u&&(a=m.charAt(F+1),F++)}l=l?+l:0;if(!isFinite(l))throw Error("Width must be finite");n=n?+n:"d"===t?0:-1<"fFeE".indexOf(t)?6:y;if(e&&0===+e)throw Error("Argument number must be greater than zero");if(e&&+e>=c.length)throw Error("Too few arguments");e=e?c[+e]:c[b++];switch(t){case "%":return"%";case "s":return k(e+"",D,l,n,a);case "c":return k(String.fromCharCode(+e),D,l,n,a);case "b":return h(e,2,D,l,n,a);case "o":return h(e,8,D,l,n,a);case "x":return h(e,16,D,l,n,a);case "X":return h(e,16,D,l,n,a).toUpperCase();case "u":return h(e,10,D,l,n,a);case "i":case "d":return e=+e||0,e=Math.round(e-e%1),p=0>e?"-":p,e=p+f(String(Math.abs(e)),n,"0",!1),D&&"0"===a&&(a=" "),g(e,p,D,l,a);case "e":case "E":case "f":case "F":case "g":case "G":return e=+e,p=0>e?"-":p,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(t.toLowerCase())],t=["toString","toUpperCase"]["eEfFgG".indexOf(t)%2],e=p+Math.abs(e)[m](n),g(e,p,D,l,a)[t]();default:return""}};try{return e.replace(a,m)}catch(D){return!1}}function da(){var a=arguments,c=a.length,b=0;if(0===c)throw Error("Empty isset");for(;b!==c;){if(a[b]===y||null===a[b])return!1;b++}return!0}function ea(a){return("number"===typeof a||"string"===typeof a&&-1===" \n\r\t\f\x0B\u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000".indexOf(a.slice(-1)))&&""!==a&&!isNaN(a)}function v(a,c){return a===c?0:a>c?1:-1}function E(a,c,b){a=(a+"").indexOf(c,b||0);return-1===a?!1:a}function K(a,c,b){a+="";var e=a.length;0>c&&(c+=e);b!==y&&(e=0>b?b+e:b+c);return c>=a.length||0>c||c>e?!1:a.slice(c,e)}function T(a,c){var b,e=0;if(null===a||a===y)return 0;if(a.constructor!==Array&&a.constructor!==Object)return 1;"COUNT_RECURSIVE"===c&&(c=1);1!==c&&(c=0);for(b in a)a.hasOwnProperty(b)&&(e++,1!==c||!a[b]||a[b].constructor!==Array&&a[b].constructor!==Object||(e+=T(a[b],1)));return e}function U(a,c){var b="",e="",f="";1===arguments.length&&(c=a,a="");if("object"===typeof c){if("[object Array]"===Object.prototype.toString.call(c))return c.join(a);for(b in c)e+=f+c[b],f=a;return e}return c}function P(a,c,b){if(2>arguments.length||a===y||c===y)return null;if(""===a||!1===a||null===a)return!1;if("function"===typeof a||"object"===typeof a||"function"===typeof c||"object"===typeof c)return{0:""};!0===a&&(a="1");a+="";var e=(c+"").split(a);if(b===y)return e;0===b&&(b=1);if(0<b)return b>=e.length?e:e.slice(0,b-1).concat([e.slice(b-1).join(a)]);if(-b>=e.length)return[];e.splice(e.length+b);return e}function fa(a,c){null===c&&(c=1);if(null===a||1>c)return!1;a+="";for(var b=[],e=0,f=a.length;e<f;)b.push(a.slice(e,e+=c));return b}function G(a,c,b,e){var f="",g=function(a,b){for(var c="";c.length<b;)c+=a;return c=c.substr(0,b)};a+="";b=b!==y?b:" ";0!==e&&1!==e&&2!==e&&(e=1);0<(f=c-a.length)&&(0===e?a=g(b,f)+a:1===e?a+=g(b,f):2===e&&(f=g(b,Math.ceil(f/2)),a=(f+a+f).substr(0,c)));return a}function ja(a){var c="",b="";if(a.hasOwnProperty("length"))return a.length?a.pop():null;for(c in a)a.hasOwnProperty(c)&&(b=c);return b?(c=a[b],delete a[b],c):null}function ka(a){for(var c=arguments.length,b=arguments,e=null,f=a,g=b[1].length,h=0,k=1,m=0,l=[],n=[];h<g;){for(;k<c;)l[m++]=b[k++][h];m=0;k=1;if(a){if("string"===typeof a)f=B[a];else if("object"===typeof a&&a.length){e="string"===typeof a[0]?B[a[0]]:a[0];if(e===y)throw Error("Object not found: "+a[0]);f="string"===typeof a[1]?e[a[1]]:a[1]}n[h++]=f.apply(e,l)}else n[h++]=l;l=[]}return n}function V(a,c){var b="[object Array]"===Object.prototype.toString.call(a),e=c?{}:[];if(b&&!c)return a.slice(0).reverse();if(c){var f=[];for(g in a)f.push(g);for(b=f.length;b--;){var g=f[b];e[g]=a[g]}}else for(g in a)e.unshift(a[g]);return e}function la(a){a=(a+"").replace(/[^01]/gi,"");return parseInt(a,2)}function ma(a){0>a&&(a=4294967295+a+1);return parseInt(a,10).toString(2)}function W(a){var c,b="";a+="";var e=0;for(c=a.length;e<c;e++){var f=a.charCodeAt(e).toString(16);b+=2>f.length?"0"+f:f}return b}function X(a){a+="";var c=[],b=0,e;for(e=a.length;b<e;b+=2){var f=parseInt(a.substr(b,1),16);var g=parseInt(a.substr(b+1,1),16);if(isNaN(f)||isNaN(g))return!1;c.push(f<<4|g)}return String.fromCharCode.apply(String,c)}function L(a){for(var c=0,b=1,e="",f,g,h,k,m,l,n,p,t,v,w,C,B,u,x,A,z;c<a.length;){k=a.charAt(c);m="";for(c++;c<a.length&&null!==a.charAt(c).match(/[\d*]/);)m+=a.charAt(c),c++;""===m&&(m="1");switch(k){case "a":case "A":if(arguments[b]===y)throw Error("pack(): Type "+k+": not enough arguments");f=String(arguments[b]);"*"===m&&(m=f.length);for(g=0;g<m;g++)e=f[g]===y?"a"===k?e+String.fromCharCode(0):e+" ":e+f[g];b++;break;case "h":case "H":if(arguments[b]===y)throw Error("pack(): Type "+k+": not enough arguments");f=arguments[b];"*"===m&&(m=f.length);if(m>f.length)throw Error("pack(): Type "+k+": not enough characters in string");for(g=0;g<m;g+=2)l=f[g],l=g+1>=m||f[g+1]===y?l+"0":l+f[g+1],"h"===k&&(l=l[1]+l[0]),e+=String.fromCharCode(parseInt(l,16));b++;break;case "c":case "C":"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++)e+=String.fromCharCode(arguments[b]),b++;break;case "s":case "S":case "v":"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++)e+=String.fromCharCode(arguments[b]&255),e+=String.fromCharCode(arguments[b]>>8&255),b++;break;case "n":"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++)e+=String.fromCharCode(arguments[b]>>8&255),e+=String.fromCharCode(arguments[b]&255),b++;break;case "i":case "I":case "l":case "L":case "V":"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++)e+=String.fromCharCode(arguments[b]&255),e+=String.fromCharCode(arguments[b]>>8&255),e+=String.fromCharCode(arguments[b]>>16&255),e+=String.fromCharCode(arguments[b]>>24&255),b++;break;case "N":"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++)e+=String.fromCharCode(arguments[b]>>24&255),e+=String.fromCharCode(arguments[b]>>16&255),e+=String.fromCharCode(arguments[b]>>8&255),e+=String.fromCharCode(arguments[b]&255),b++;break;case "f":case "d":l=23;n=8;"d"===k&&(l=52,n=11);"*"===m&&(m=arguments.length-b);if(m>arguments.length-b)throw Error("pack(): Type "+k+": too few arguments");for(g=0;g<m;g++){f=arguments[b];k=Math.pow(2,n-1)-1;h=-k+1;p=k;t=isNaN(u=parseFloat(f))||-Infinity===u||Infinity===u?u:0;v=0;w=2*k+1+l+3;C=Array(w);B=0>(u=0!==t?0:u);u=Math.abs(u);x=Math.floor(u);u-=x;for(f=w;f;)C[--f]=0;for(f=k+2;x&&f;)C[--f]=x%2,x=Math.floor(x/2);for(f=k+1;0<u&&f;--u)C[++f]=(1<=(u*=2))-0;for(f=-1;++f<w&&!C[f];);z=(u=l-1+(f=(v=k+1-f)>=h&&v<=p?f+1:k+1-(v=h-1)))+1;if(C[z]){if(!(A=C[u]))for(z=u+2;!A&&z<w;A=C[z++]);for(z=u+1;A&&0<=--z;(C[z]=!C[z]-0)&&(A=0));}for(f=0>f-2?-1:f-3;++f<w&&!C[f];);(v=k+1-f)>=h&&v<=p?++f:v<h&&(f=k+1-(v=h-1));if(x||0!==t)v=p+1,f=k+2,-Infinity===t?B=1:isNaN(t)&&(C[f]=1);u=Math.abs(v+k);k="";for(z=n+1;--z;)k=u%2+k,u=u>>=1;z=u=0;f=(k=(B?"1":"0")+k+C.slice(f,f+l).join("")).length;for(h=[];f;)u+=(1<<z)*k.charAt(--f),7===z&&(h[h.length]=String.fromCharCode(u),u=0),z=(z+1)%8;h[h.length]=u?String.fromCharCode(u):"";e+=h.join("");b++}break;case "x":if("*"===m)throw Error("pack(): Type x: '*' ignored");for(g=0;g<m;g++)e+=String.fromCharCode(0);break;case "X":if("*"===m)throw Error("pack(): Type X: '*' ignored");for(g=0;g<m;g++){if(0===e.length)throw Error("pack(): Type X: outside of string");e=e.substring(0,e.length-1)}break;case "@":if("*"===m)throw Error("pack(): Type X: '*' ignored");if(m>e.length)for(l=m-e.length,g=0;g<l;g++)e+=String.fromCharCode(0);m<e.length&&(e=e.substring(0,m));break;default:throw Error("pack(): Type "+k+": unknown format code");}}if(b<arguments.length)throw Error("pack(): "+(arguments.length-b)+" arguments unused");return e}function M(a,c){c+="";var b,e=c.length,f=[];if("C*"===a){for(b=0;b<e;b++)f[b+1]=c.charCodeAt(b);return f}if("H*hex"===a){f.hex=[];for(b=0;b<e;b++)f.hex[b+1]=((c.charCodeAt(b++)<<8)+c.charCodeAt(b)).toString(16);return f}}function Q(a,c,b){return y===b?a.test(c):c.match(a)}function Y(a,c){var b,e=null,f=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;"string"===typeof a?"function"===typeof B[a]?b=B[a]:a.match(f)&&(b=(new Function(null,"return "+a))()):"[object Array]"===Object.prototype.toString.call(a)?("string"===typeof a[0]?a[0].match(f)&&(b=eval(a[0]+"['"+a[1]+"']")):b=a[0][a[1]],"string"===typeof a[0]?"function"===typeof B[a[0]]?e=B[a[0]]:a[0].match(f)&&(e=eval(a[0])):"object"===typeof a[0]&&(e=a[0])):"function"===typeof a&&(b=a,e=B);if("function"!==typeof b)throw Error(b+" is not a valid function");return b.apply(e,c)}function Z(a,c,b){var e=/((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/;switch(c){case 275:return b===y?e.test(a):1048576===b?!1!==E(a,"."):!0}return!1}function w(a){a+="";var c=0,b="",e=[];if(4===a.length)return[a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2),a.charCodeAt(3)].join(".");if(16===a.length){for(c=0;16>c;c++)e.push(((a.charCodeAt(c++)<<8)+a.charCodeAt(c)).toString(16));return e.join(":").replace(/((^|:)0(?=:|$))+:?/g,function(a){b=a.length>b.length?a:b;return a}).replace(b||" ","::")}return!1}function na(a){a+="";var c,b;var e=String.fromCharCode;if(c=a.match(/^(?:\d{1,3}(?:\.|$)){4}/))return c=c[0].split("."),c=e(c[0])+e(c[1])+e(c[2])+e(c[3]),4===c.length?c:!1;if(c=a.match(/^((?:[\da-f]{1,4}(?::|)){0,8})(::)?((?:[\da-f]{1,4}(?::|)){0,8})$/)){for(b=1;4>b;b++)if(2!==b&&0!==c[b].length){c[b]=c[b].split(":");for(a=0;a<c[b].length;a++){c[b][a]=parseInt(c[b][a],16);if(isNaN(c[b][a]))return!1;c[b][a]=e(c[b][a]>>8)+e(c[b][a]&255)}c[b]=c[b].join("")}e=c[1].length+c[3].length;if(16===e)return c[1]+c[3];if(16>e&&0<c[2].length)return c[1]+Array(16-e+1).join("\x00")+c[3]}return!1}function oa(a){var c;a=a.match(/^([1-9]\d*|0[0-7]*|0x[\da-f]+)(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))?$/i);if(!a)return!1;a[0]=0;for(c=1;5>c;c+=1)a[0]+=!!(a[c]||"").length,a[c]=parseInt(a[c])||0;a.push(256,256,256,256);a[4+a[0]]*=Math.pow(256,4-a[0]);return a[1]>=a[5]||a[2]>=a[6]||a[3]>=a[7]||a[4]>=a[8]?!1:a[1]*(1===a[0]||16777216)+a[2]*(2>=a[0]||65536)+a[3]*(3>=a[0]||256)+1*a[4]}function l(a){this.__construct(a)}function A(a,c){this.__construct(a,c)}function x(a,c){this.__construct(a,c)}function R(a,c,b){var e=[].slice.call(arguments).slice(3);a&&a.addEventListener?a.addEventListener(c,function(){b.apply(a,e)},!1):a&&a.attachEvent&&a.attachEvent("on"+c,function(){b.apply(a,e)})}function ha(a){return a.trim().replace(",","\n").split("\n").map(function(a){return a.trim()})}function I(a){for(;t.g.firstChild;)t.g.removeChild(t.g.firstChild);t.g.appendChild(a?S.createTextNode(a+""):pa)}"function"!==typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(a,c){if(null==a)throw Error("Cannot convert undefined or null to object");var b,e,f=Object(a);for(e=1;e<arguments.length;e++){var g=arguments[e];if(null!=g)for(b in g)Object.prototype.hasOwnProperty.call(g,b)&&(f[b]=g[b])}return f},writable:!0,configurable:!0});Array.prototype.forEach||(Array.prototype.forEach=function(a,c){if(null==this)throw Error("this is null or not defined");var b,e,f=Object(this);var g=f.length>>>0;if("[object Function]"!=={}.toString.call(a))throw Error(a+" is not a function");c&&(b=c);for(e=0;e<g;){if(e in f){var h=f[e];a.call(b,h,e,f)}e++}});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var n={},ia=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;n.abs=function(){var a=new this.constructor(this);a.s=1;return a};n.cmp=function(a){var c=this.c,b=(a=new this.constructor(a)).c,e=this.s,f=a.s,g=this.e,h=a.e;if(!c[0]||!b[0])return c[0]?e:b[0]?-f:0;if(e!==f)return e;a=0>e;if(g!==h)return g>h^a?1:-1;f=(g=c.length)<(h=b.length)?g:h;for(e=-1;++e<f;)if(c[e]!==b[e])return c[e]>b[e]^a?1:-1;return g===h?0:g>h^a?1:-1};n.div=function(a){var c=this.constructor,b=this.c,e=(a=new c(a)).c,f=this.s==a.s?1:-1,g=c.DP;if(g!==~~g||0>g||1E6<g)throw Error("Invalid decimal places");if(!e[0])throw Error("Division by zero");if(!b[0])return new c(0*f);var h,k=e.slice(),l=e.length,n=e.length;al=b.length;r=b.slice(0,n);rl=r.length;q=a;qc=q.c=[];qi=0;d=g+(q.e=this.e-a.e)+1;q.s=f;f=0>d?0:d;for(k.unshift(0);rl++<n;)r.push(0);do{for(h=0;10>h;h++){if(n!=(rl=r.length))var t=n>rl?1:-1;else{var p=-1;for(t=0;++p<n;)if(e[p]!=r[p]){t=e[p]>r[p]?1:-1;break}}if(0>t){for(a=rl==n?e:k;rl;){if(r[--rl]<a[rl]){for(p=rl;p&&!r[--p];)r[p]=9;--r[p];r[rl]+=10}r[rl]-=a[rl]}for(;!r[0];)r.shift()}else break}qc[qi++]=t?h:++h;r[0]&&t?r[rl]=b[l]||0:r=[b[l]]}while((l++<al||void 0!==r[0])&&f--);qc[0]||1==qi||(qc.shift(),q.e--);qi>d&&N(q,g,c.RM,void 0!==r[0]);return q};n.eq=function(a){return!this.cmp(a)};n.gt=function(a){return 0<this.cmp(a)};n.gte=function(a){return-1<this.cmp(a)};n.lt=function(a){return 0>this.cmp(a)};n.lte=function(a){return 1>this.cmp(a)};n.minus=n.sub=function(a){var c=this.constructor;var b=this.s,e=(a=new c(a)).s;if(b!==e)return a.s=-e,this.plus(a);var f=this.c.slice();var g=this.e;var h=a.c,k=a.e;if(!f[0]||!h[0])return h[0]?(a.s=-e,a):new c(f[0]?this:0);if(b=g-k){c=b;0>b?(b=-b,g=f):(k=g,g=h);g.reverse();for(e=b;e--;)g.push(0);g.reverse()}else for(g=((c=f.length<h.length)?f:h).length,b=e=0;e<g;e++)if(f[e]!=h[e]){c=f[e]<h[e];break}c&&(g=f,f=h,h=g,a.s=-a.s);if(0<(e=(g=h.length)-(c=f.length)))for(;e--;)f[c++]=0;for(e=c;g>b;){if(f[--g]<h[g]){for(c=g;c&&!f[--c];)f[c]=9;--f[c];f[g]+=10}f[g]-=h[g]}for(;0===f[--e];)f.pop();for(;0===f[0];)f.shift(),--k;f[0]||(a.s=1,f=[k=0]);a.c=f;a.e=k;return a};n.mod=function(a){var c=this,b=c.constructor,e=c.s,f=(a=new b(a)).s;if(!a.c[0])throw Error("Division by zero");c.s=a.s=1;var g=1===a.cmp(c);c.s=e;a.s=f;if(g)return new b(c);e=b.DP;f=b.RM;b.DP=b.RM=0;c=c.div(a);b.DP=e;b.RM=f;return this.minus(c.times(a))};n.plus=n.add=function(a){var c=this.constructor;var b=this.s,e=(a=new c(a)).s;if(b!==e)return a.s=-e,this.minus(a);e=this.e;var f=this.c,g=a.e,h=a.c;if(!f[0]||!h[0])return h[0]?a:new c(f[0]?this:0*b);f=f.slice();if(b=e-g){0<b?(g=e,c=h):(b=-b,c=f);for(c.reverse();b--;)c.push(0);c.reverse()}0>f.length-h.length&&(c=h,h=f,f=c);b=h.length;for(e=0;b;f[b]%=10)e=(f[--b]=f[b]+h[b]+e)/10|0;e&&(f.unshift(e),++g);for(b=f.length;0===f[--b];)f.pop();a.c=f;a.e=g;return a};n.pow=function(a){var c=this,b=new c.constructor(1),e=b,f=0>a;for(f&&(a=-a);;){a&1&&(e=e.times(c));a>>=1;if(!a)break;c=c.times(c)}return f?b.div(e):e};n.round=function(a,c){var b=this.constructor;if(void 0===a)a=0;else if(a!==~~a||0>a||1E6<a)throw Error("Invalid decimal places");return N(new b(this),a,void 0===c?b.RM:c)};n.sqrt=function(){var a=this.constructor;var c=this.s;var b=this.e,e=new a(.5);if(!this.c[0])return new a(this);if(0>c)throw Error("No square root");c=Math.sqrt(this.toString());0===c||c===1/0?(c=this.c.join(""),c.length+b&1||(c+="0"),c=new a(Math.sqrt(c).toString()),c.e=((b+1)/2|0)-(0>b||b&1)):c=new a(c.toString());b=c.e+(a.DP+=4);do{var f=c;c=e.times(f.plus(this.div(f)))}while(f.c.slice(0,b).join("")!==c.c.slice(0,b).join(""));return N(c,a.DP-=4,a.RM)};n.times=n.mul=function(a){var c=this.constructor;var b=this.c,e=(a=new c(a)).c,f=b.length,g=e.length,h=this.e,k=a.e;a.s=this.s===a.s?1:-1;if(!b[0]||!e[0])return new c(0*a.s);a.e=h+k;f<g&&(c=b,b=e,e=c,k=f,f=g,g=k);for(c=Array(k=f+g);k--;)c[k]=0;for(h=g;h--;){g=0;for(k=f+h;k>h;)g=c[k]+e[h]*b[k-h-1]+g,c[k--]=g%10,g=g/10|0;c[k]=(c[k]+g)%10}g?++a.e:c.shift();for(h=c.length;!c[--h];)c.pop();a.c=c;return a};n.toExponential=function(a){return J(this,1,a,a)};n.toFixed=function(a){return J(this,2,a,this.e+a)};n.toPrecision=function(a){return J(this,3,a,a-1)};n.toString=function(){return J(this)};n.valueOf=n.toJSON=function(){return J(this,4)};var p=aa();p["default"]=p.Big=p;B.Big=p;l.prototype={IP_V4:"IPv4",IP_V6:"IPv6",IP_V4_MAX_PREFIX_LENGTH:32,IP_V6_MAX_PREFIX_LENGTH:128,IP_V4_OCTETS:4,IP_V6_OCTETS:16,$in_addr:null,__construct:function(a){if(!Z(a,275))throw Error("Invalid IP address format: "+a);this.$in_addr=na(a)},toString:function(){return w(this.$in_addr)},parse:function(a){return 0===E(a,"0x")?(a=K(a,2),this.parseHex(a)):0===E(a,"0b")?(a=K(a,2),this.parseBin(a)):ea(a)?this.parseLong(a):new l(a)},parseBin:function(a){if(!Q(/^([0-1]{32}|[0-1]{128})$/,a))throw Error("Invalid binary IP address format: "+a);var c="";ka(la,fa(a,8)).forEach(function(a){c+=L("C*",a)});return new l(w(c))},parseHex:function(a){if(!Q(/^([0-9a-fA-F]{8}|[0-9a-fA-F]{32})$/,a))throw Error("Invalid hexadecimal IP address format: "+a);return new l(w(L("H*",a)))},parseLong:function(a,c){if(c===this.IP_V4){var b=a;b=isFinite(b)?[b>>>24,b>>>16&255,b>>>8&255,b&255].join("."):!1;b=new this(b)}else{var e=[];for(b=0;b<this.IP_V6_OCTETS;b++)e.push(p(a).mod(256)),a=p(a).div(256);e=V(e);e[0]="C*";b=new l(w(Y(L,e)))}return b},parseInAddr:function(a){return new l(w(a))},getVersion:function(){return Z(w(this.$in_addr),275,1048576)?this.IP_V4:Z(w(this.$in_addr),275,2097152)?this.IP_V6:!1},getMaxPrefixLength:function(){return this.getVersion()===this.IP_V4?this.IP_V4_MAX_PREFIX_LENGTH:this.IP_V6_MAX_PREFIX_LENGTH},getOctetsCount:function(){return this.getVersion()===this.IP_V4?this.IP_V4_OCTETS:this.IP_V6_OCTETS},getReversePointer:function(){if(this.getVersion()===this.IP_V4){var a=V(P(".",this.toString()));a=U(".",a)+".in-addr.arpa"}else a=M("H*hex",this.$in_addr),a=V(fa(a.hex)),a=U(".",a)+".ip6.arpa";return a},inAddr:function(){return this.$in_addr},toBin:function(){var a=[];M("C*",this.$in_addr).forEach(function(c){a.push(G(ma(c),8,"0",0))});return U(a)},toHex:function(){return W(this.$in_addr)},toLong:function(){var a=0;if(this.getVersion()===this.IP_V4)a=ca("%u",oa(w(this.$in_addr)));else{var c=this.IP_V6_OCTETS-1;var b=M("C*",this.$in_addr);b.forEach(function(b){var e=a;var g=c--;g=p(256).pow(g);b=p(b).times(g);a=O(e,b,1)})}return a},next:function(a){a=a||1;if(0>a)throw Error("Number must be greater than 0");var c,b,e=M("C*",this.$in_addr);for(c=0;c<a;c++)for(b=T(e);0<=b;--b)if(255>e[b]){e[b]++;break}else e[b]=0;e[0]="C*";return new l(w(Y(L,e)))},prev:function(a){a=a||1;if(0>a)throw Error("Number must be greater than 0");var c,b,e=M("C*",this.$in_addr);for(c=0;c<a;c++)for(b=T(e);0<=b;--b)if(0==e[b])e[b]=255;else{e[b]--;break}e[0]="C*";return new l(w(Y(L,e)))}};A.prototype={$ip:null,$netmask:null,$position:0,__construct:function(a,c){this.setIP(a);this.setNetmask(c)},toString:function(){return this.getCIDR()},parse:function(a){if(E(a,"/")){var c=P("/",a,2);a=c[0];c=c[1];a=l.prototype.parse(a);c=this.prefix2netmask(parseInt(c,10),a.getVersion())}else E(a," ")?(c=P(" ",a,2),a=c[0],c=c[1],a=l.prototype.parse(a),c=l.prototype.parse(c)):(a=l.prototype.parse(a),c=this.prefix2netmask(a.getMaxPrefixLength(),a.getVersion()));return new A(a,c)},prefix2netmask:function(a,c){a:{var b=[l.prototype.IP_V4,l.prototype.IP_V6];var e="";for(e in b)if(b.hasOwnProperty(e)&&b[e]==c){b=!0;break a}b=!1}if(!b)throw Error("Wrong IP version");b=c===l.prototype.IP_V4?l.prototype.IP_V4_MAX_PREFIX_LENGTH:l.prototype.IP_V6_MAX_PREFIX_LENGTH;if(!(ea(a)&&0<=a&&a<=b))throw Error("Invalid prefix length");b=G(G("",parseInt(a,10),"1"),b,"0");return l.prototype.parseBin(b)},netmask2prefix:function(a){a=a.toBin();var c="0";c=c?(c+"").replace(/([[\]().?/*{}+$^:])/g,"\\$1"):" \\s\u00a0";return((a+"").replace(new RegExp("["+c+"]+$","g"),"")+"").length},setIP:function(a){if(da(this.$netmask)&&this.$netmask.getVersion()!==a.getVersion())throw Error("IP version is not same as Netmask version");this.$ip=a},setNetmask:function(a){if(!Q(/^1*0*$/,a.toBin()))throw Error("Invalid Netmask address format");if(da(this.$ip)&&a.getVersion()!==this.$ip.getVersion())throw Error("Netmask version is not same as IP version");this.$netmask=a},setPrefixLength:function(a){this.setNetmask(this.prefix2netmask(parseInt(a,10),this.$ip.getVersion()))},getIP:function(){return this.$ip},getNetmask:function(){return this.$netmask},getNetwork:function(){var a=this.getIP().inAddr()+"",c=this.getNetmask().inAddr()+"",b,e=a.length,f=[];for(b=0;b<e;b++)f.push(G((a.charCodeAt(b)&c.charCodeAt(b)).toString(16),2,"0",0));return new l(w(X(f.join(""))))},getPrefixLength:function(){return this.netmask2prefix(this.getNetmask())},getCIDR:function(){return ca("%s/%s",this.getNetwork(),this.getPrefixLength())},getWildcard:function(){return new l(w(~this.getNetmask().inAddr()))},getBroadcast:function(){var a=this.getNetwork().inAddr()+"",c=this.getNetmask().inAddr()+"",b,e=a.length,f=[];for(b=0;b<e;b++)f.push(G((a.charCodeAt(b)|~c.charCodeAt(b)&255).toString(16),2,"0",0));return new l(w(X(f.join(""))))},getFirstIP:function(){return this.getNetwork()},getLastIP:function(){return this.getBroadcast()},getBlockSize:function(){var a=this.$ip.getMaxPrefixLength(),c=this.getPrefixLength();return this.$ip.getVersion()===l.prototype.IP_V6?(a=a-c+"",p("2").pow(a)):Math.pow(2,a-c)},getHosts:function(){var a=this.getNetwork(),c=this.getBroadcast();this.$ip.getVersion()===l.prototype.IP_V4&&2<this.getBlockSize()&&(a=l.prototype.parseBin(K(a.toBin(),0,a.getMaxPrefixLength()-1)+"1"),c=l.prototype.parseBin(K(c.toBin(),0,c.getMaxPrefixLength()-1)+"0"));return new x(a,c)},exclude:function(a){a=this.parse(a);if(0<v(a.getFirstIP().inAddr(),this.getLastIP().inAddr())||0>v(a.getLastIP().inAddr(),this.getFirstIP().inAddr()))throw Error("Exclude subnet not within target network");var c=[],b=this.getPrefixLength()+1;var e=H(!0,{},this);e.setPrefixLength(b);var f=H(!0,{},e);for(f.setIP(e.getLastIP().next());b<=a.getPrefixLength();){var g=new x(e.getFirstIP(),e.getLastIP());if(g.contains(a)){g=e;var h=f}else g=f,h=e;c.push(H(!0,{},h));if(++b>this.getNetwork().getMaxPrefixLength())break;g.setPrefixLength(b);h.setPrefixLength(b);h.setIP(g.getLastIP().next())}return A.prototype.sort(c)},moveTo:function(a){var c=this.$ip.getMaxPrefixLength();if(a<=this.getPrefixLength()||a>c)throw Error("Invalid prefix length");c=this.prefix2netmask(a,this.$ip.getVersion());var b=[];var e=H(!0,{},this);for(e.setPrefixLength(a);e.$ip.inAddr()<this.getLastIP().inAddr();)b.push(e),e=new A(e.getLastIP().next(),c);return b},sort:function(a){return a.sort(function(a,b){a=l.prototype.parse((a+"").split("/").shift()).toHex();b=l.prototype.parse((b+"").split("/").shift()).toHex();return v(a,b)})},current:function(){return this.getFirstIP().next(this.$position)},key:function(){return this.$position},next:function(){++this.$position},rewind:function(){this.$position=0},valid:function(){return 0>=v(this.getFirstIP().next(this.$position).inAddr(),this.getLastIP().inAddr())},count:function(){return parseInt(this.getBlockSize())}};x.prototype={$firstIP:null,$lastIP:null,$position:0,__construct:function(a,c){this.setFirstIP(a);this.setLastIP(c)},parse:function(a){if(E(a,"/")||E(a," ")){a=A.prototype.parse(a);var c=a.getFirstIP();a=a.getLastIP()}else E(a,"*")?(c=l.prototype.parse(a.replace("*","0")),a=l.prototype.parse(a.replace("*","255"))):E(a,"-")?(a=P("-",a,2),c=l.prototype.parse(a[0]),a=l.prototype.parse(a[1])):(c=l.prototype.parse(a),a=H(!0,{},c));return new x(c,a)},contains:function(a){if(a instanceof l)a=0<=v(a.inAddr(),this.$firstIP.inAddr())&&0>=v(a.inAddr(),this.$lastIP.inAddr());else if(a instanceof x||a instanceof A)a=0<=v(a.getFirstIP().inAddr(),this.$firstIP.inAddr())&&0>=v(a.getLastIP().inAddr(),this.$lastIP.inAddr());else throw Error("Invalid type");return a},setFirstIP:function(a){if(this.$lastIP&&0<v(a.inAddr(),this.$lastIP.inAddr()))throw Error("First IP is grater than second");this.$firstIP=a},setLastIP:function(a){if(this.$firstIP&&0>v(a.inAddr(),this.$firstIP.inAddr()))throw Error("Last IP is less than first");this.$lastIP=a},getFirstIP:function(){return this.$firstIP},getLastIP:function(){return this.$lastIP},getNetworks:function(){var a=this.getSpanNetwork(),c=[];if(a.getFirstIP().inAddr()===this.$firstIP.inAddr()&&a.getLastIP().inAddr()===this.$lastIP.inAddr())c.push(a);else{if(a.getFirstIP().inAddr()!==this.$firstIP.inAddr()){var b=a.exclude(this.$firstIP.prev());var e=this.$firstIP.inAddr();b.forEach(function(a){0<=v(a.getFirstIP().inAddr(),e)&&c.push(a)})}a.getLastIP().inAddr()!==this.$lastIP.inAddr()&&(c.length?(b=ja(c),b=b.exclude(this.$lastIP.next())):b=a.exclude(this.$lastIP.next()),e=this.$lastIP.inAddr(),b.forEach(function(a){a.getLastIP().inAddr()<=e&&c.push(a)}))}return A.prototype.sort(c)},getSpanNetwork:function(){var a=this.getFirstIP().inAddr()+"",c=this.getLastIP().inAddr()+"",b,e=a.length,f=[];for(b=0;b<e;b++)f.push(G((a.charCodeAt(b)^c.charCodeAt(b)).toString(16),2,"0",0));c=l.prototype.parseInAddr(X(f.join("")));a=(Q(/^(0*)/,c.toBin(),!0)[1]+"").length;c=l.prototype.parseBin(G(K(this.getFirstIP().toBin(),0,a),c.getMaxPrefixLength(),"0"));return new A(c,A.prototype.prefix2netmask(a,c.getVersion()))},sort:function(a){return a.sort(function(a,b){var c=v(a.getFirstIP().inAddr(),b.getFirstIP().inAddr());return c?c:v(a.getLastIP().inAddr(),b.getLastIP().inAddr())})},merge:function(a){a=x.prototype.sort(a);for(var c=0;c<a.length-1;)0<=v(a[c].getLastIP().next().inAddr(),a[c+1].getFirstIP().inAddr())?(a[c].setLastIP(a[c+1].getLastIP()),a.splice(c+1,1)):++c;return a},current:function(){return this.$firstIP.next(this.$position)},key:function(){return this.$position},next:function(){++this.$position},rewind:function(){this.$position=0},valid:function(){return 0>=v(W(this.$firstIP.next(this.$position).inAddr()),W(this.$lastIP.inAddr()))},count:function(){var a=this.$lastIP.toLong();var c=this.$firstIP.toLong();a=p(a).minus(c);return O(a,1)}};B.IP=l;B.Network=A;B.Range=x;var t={};"abcdefg".split("").map(function(a){t[a]=S.getElementById(a)});var pa=t.g?t.g.firstChild.cloneNode(!1):null;R(t.a,"click",function(a){a.value="";I()},t.c);R(t.b,"click",function(a){a.value="";I()},t.d);R(t.e,"click",function(a,c){var b=ha(a.value);console.log(b);if(b[0])try{var e,f=[];var g=0;for(e=b.length;g<e;++g)b[g]&&(b[g]=b[g].split("-").map(function(a){return a.trim()}),1===b[g].length&&b[g].push(b[g][0]),2===b[g].length&&(b[g][1]=b[g][1]||b[g][0],b[g][0]=b[g][0]||b[g][1],b[g][0]&&b[g][1]&&f.push(new x(new l(b[g][0]),new l(b[g][1])))));f=x.prototype.merge(f);var h=p(0);c.value="";g=0;for(e=f.length;g<e;++g)h=O(h,f[g].count(),1),f[g].getNetworks().forEach(function(a){c.value+=a+"\n"});I(h.gt(p(0))?h:null)}catch(k){I(k.message)}},t.c,t.d);R(t.f,"click",function(a,c){var b=ha(a.value);console.log(b);if(b[0])try{var e,f=[];var g=0;for(e=b.length;g<e;++g)b[g]&&f.push(x.prototype.parse(b[g]));f=x.prototype.merge(f);var h=p(0);c.value="";g=0;for(e=f.length;g<e;++g)h=O(h,f[g].count(),1),c.value+=f[g].getFirstIP()+" - "+f[g].getLastIP()+"\n";I(h.gt(p(0))?h:null)}catch(k){I(k.message)}},t.d,t.c);S.getElementById("c").focus()})(window,document); |