/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/cidr-tools@11.3.3/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{normalizeIp,parseIp,stringifyIp}from"ip-bigint";const bits={4:32,6:128},octetStrings=Array.from({length:256},((r,t)=>String(t))),octetDotStrings=Array.from({length:256},((r,t)=>`${t}.`)),prefixStrings=Array.from({length:129},((r,t)=>`/${t}`)),cmpV4StartEnd=(r,t)=>r.start-t.start||r.end-t.end,cmpV4Start=(r,t)=>r.start-t.start,cmpV6StartEnd=(r,t)=>r.start>t.start?1:r.start<t.start?-1:r.end>t.end?1:r.end<t.end?-1:0,cmpV6Start=(r,t)=>r.start>t.start?1:r.start<t.start?-1:0;function parseIPv4Fast(r,t){let n=0,e=0,s=0,a=0;for(let o=0;o<t;o++){const t=r.charCodeAt(o);if(46===t){if(0===a||e>255)return-1;n=n<<8|e,e=0,s++,a=0}else{if(!(t>=48&&t<=57))return-1;e=10*e+(t-48),a++}}return 3!==s||0===a||e>255?-1:(n<<8|e)>>>0}function formatIPv4Fast(r){return octetDotStrings[r>>>24&255]+octetDotStrings[r>>>16&255]+octetDotStrings[r>>>8&255]+octetStrings[255&r]}function parsePrefixNum(r,t){if(-1===t)return-1;if(t+1>=r.length)throw new Error(`Network is not a CIDR or IP: "${r}"`);let n=0;for(let e=t+1;e<r.length;e++){const t=r.charCodeAt(e);if(t<48||t>57)throw new Error(`Network is not a CIDR or IP: "${r}"`);n=10*n+(t-48)}return n}let rangeV4Start=0,rangeV4End=0,rangeV4Prefix=0,rangeSlashIndex=-1;function parseIPv4Range(r){rangeSlashIndex=r.indexOf("/");const t=parseIPv4Fast(r,-1!==rangeSlashIndex?rangeSlashIndex:r.length);if(-1===t)return!1;rangeV4Prefix=-1!==rangeSlashIndex?parsePrefixNum(r,rangeSlashIndex):32;const n=32-rangeV4Prefix;if(n>=32)rangeV4Start=0,rangeV4End=4294967295;else{const r=n>0?(1<<n>>>0)-1:0;rangeV4Start=(t&~r)>>>0,rangeV4End=(t|r)>>>0}return!0}function doNormalize(r,t){if(parseIPv4Range(r)){const r=formatIPv4Fast(rangeV4Start);return-1!==rangeSlashIndex?r+prefixStrings[rangeV4Prefix]:r}const{start:n,end:e,prefix:s,version:a,prefixPresent:o}=parseCidr(r);if(4===a){const r=formatIPv4Fast(Number(n));return n!==e||o?r+prefixStrings[Number(s)]:r}const{compress:i=!0,hexify:f=!1}=t||{};return n!==e||o?normalizeIp(stringifyIp({number:n,version:a}),{compress:i,hexify:f})+prefixStrings[Number(s)]:normalizeIp(r,{compress:i,hexify:f})}function normalizeCidr(r,t){return Array.isArray(r)?r.map((r=>normalizeCidr(r,t))):doNormalize(r,t)}function parseCidr(r){const t=r.indexOf("/"),n=-1!==t,e=parseIPv4Fast(r,-1!==t?t:r.length);if(-1!==e){const s=n?parsePrefixNum(r,t):32,a=formatIPv4Fast(e),o=String(s),i=32-s;let f,d;if(i>=32)f=0,d=4294967295;else{const r=i>0?(1<<i>>>0)-1:0;f=(e&~r)>>>0,d=(e|r)>>>0}return{cidr:a+prefixStrings[s],ip:a,version:4,prefix:o,prefixPresent:n,start:BigInt(f),end:BigInt(d)}}const s=n?r.substring(0,t):r;let a=n?parsePrefixNum(r,t):-1;const{number:o,version:i,ipv4mapped:f,scopeid:d}=parseIp(s);if(!i)throw new Error(`Network is not a CIDR or IP: "${r}"`);-1===a&&(a=bits[i]);const c=String(a),u=stringifyIp({number:o,version:i,ipv4mapped:f,scopeid:d}),g=bits[i]-a,p=g>0?(1n<<BigInt(g))-1n:0n;return{cidr:u+prefixStrings[a],ip:u,version:i,prefix:c,prefixPresent:n,start:o&~p,end:o|p}}function parseCidrLean(r){if(parseIPv4Range(r))return{start:rangeV4Start,end:rangeV4End,version:4};const t=rangeSlashIndex,n=-1!==t?r.substring(0,t):r;let e=-1!==t?parsePrefixNum(r,t):-1;const{number:s,version:a}=parseIp(n);if(!a)throw new Error(`Network is not a CIDR or IP: "${r}"`);-1===e&&(e=bits[a]);const o=bits[a]-e;if(4===a){const r=Number(s);if(o>=32)return{start:0,end:4294967295,version:4};const t=o>0?(1<<o>>>0)-1:0;return{start:(r&~t)>>>0,end:(r|t)>>>0,version:4}}const i=o>0?(1n<<BigInt(o))-1n:0n;return{start:s&~i,end:s|i,version:6}}function bigintBitLength(r){if(0n===r)return 0;let t=0;for(r>=18446744073709551616n&&(r>>=64n,t=64);r>=4294967296n;)r>>=32n,t+=32;return t+32-Math.clz32(Number(r))}function biggestPowerOfTwo(r){return 0n===r?0n:1n<<BigInt(bigintBitLength(r)-1)}function biggestPowerOfTwo4(r){return 0===r?0:r>=4294967296?4294967296:1<<31-Math.clz32(r)>>>0}function subparts4(r,t,n){if(t<r)return;if(t===r)return void n.push({start:r,end:t});if(t-r==1)return void(t%2==0?n.push({start:r,end:r},{start:t,end:t}):n.push({start:r,end:t}));const e=t-r+1;if(!(e&e-1)&&r%e==0)return void n.push({start:r,end:t});let s,a,o=biggestPowerOfTwo4(e);if(r%o==0)s=r,a=s+o-1;else if(s=Math.floor(t/o)*o,s+o-1>t){for(s=(Math.floor(t/o)-1)*o;s<r;)o/=2,s=(Math.floor(t/o)-1)*o;a=s+o-1}else s=Math.floor(t/o)*o,a=s+o-1;s!==r&&subparts4(r,s-1,n),n.push({start:s,end:a}),a!==t&&subparts4(a+1,t,n)}function subparts6(r,t,n){if(t<r)return;if(t===r)return void n.push({start:r,end:t});if(t-r===1n)return void(t%2n===0n?n.push({start:r,end:r},{start:t,end:t}):n.push({start:r,end:t}));const e=t-r+1n;if(0n===(e&e-1n)&&0n===(r&e-1n))return void n.push({start:r,end:t});let s,a,o=biggestPowerOfTwo(e);if(0n===(r&o-1n))s=r,a=s+o-1n;else if(s=t&-o,s+o-1n>t){for(s=(t&-o)-o;s<r;)o>>=1n,s=(t&-o)-o;a=s+o-1n}else s=t&-o,a=s+o-1n;s!==r&&subparts6(r,s-1n,n),n.push({start:s,end:a}),a!==t&&subparts6(a+1n,t,n)}function formatPart4(r){return formatIPv4Fast(r.start)+prefixStrings[Math.clz32(r.end-r.start)]}function formatPart6(r){return stringifyIp({number:r.start,version:6})+prefixStrings[128-bigintBitLength(r.end-r.start)]}function mergeIntervalsRaw4(r){if(0===r.length)return[];r.sort(cmpV4StartEnd);const t=[];let n=r[0].start,e=r[0].end;for(let s=1;s<r.length;s++){const{start:a,end:o}=r[s];a<=e+1?o>e&&(e=o):(t.push({start:n,end:e}),n=a,e=o)}return t.push({start:n,end:e}),t}function mergeIntervalsRaw6(r){if(0===r.length)return[];r.sort(cmpV6StartEnd);const t=[];let n=r[0].start,e=r[0].end;for(let s=1;s<r.length;s++){const{start:a,end:o}=r[s];a<=e+1n?o>e&&(e=o):(t.push({start:n,end:e}),n=a,e=o)}return t.push({start:n,end:e}),t}function mergeIntervals4(r){const t=[];for(const n of mergeIntervalsRaw4(r))subparts4(n.start,n.end,t);return t}function mergeIntervals6(r){const t=[];for(const n of mergeIntervalsRaw6(r))subparts6(n.start,n.end,t);return t}function subtractSorted4(r,t){if(0===t.length)return r;if(0===r.length)return[];const n=[];let e=0;for(const s of r){let r=s.start;const a=s.end;for(;e<t.length&&t[e].end<r;)e++;let o=e;for(;o<t.length&&t[o].start<=a&&r<=a;)t[o].start>r&&n.push({start:r,end:t[o].start-1}),r=t[o].end+1,o++;r<=a&&n.push({start:r,end:a})}return n}function subtractSorted6(r,t){if(0===t.length)return r;if(0===r.length)return[];const n=[];let e=0;for(const s of r){let r=s.start;const a=s.end;for(;e<t.length&&t[e].end<r;)e++;let o=e;for(;o<t.length&&t[o].start<=a&&r<=a;)t[o].start>r&&n.push({start:r,end:t[o].start-1n}),r=t[o].end+1n,o++;r<=a&&n.push({start:r,end:a})}return n}function mergeCidr(r){const t=Array.isArray(r)?r:[r],n=[],e=[];for(const r of t){const t=parseCidrLean(r);4===t.version?n.push(t):e.push(t)}const s=[];for(const r of mergeIntervals4(n))s.push(formatPart4(r));for(const r of mergeIntervals6(e))s.push(formatPart6(r));return s}function excludeCidr(r,t){const n=Array.isArray(r)?r:[r],e=Array.isArray(t)?t:[t],s=[],a=[],o=[],i=[];for(const r of n){const t=parseCidrLean(r);4===t.version?s.push(t):a.push(t)}for(const r of e){const t=parseCidrLean(r);4===t.version?o.push(t):i.push(t)}const f=[];{const r=subtractSorted4(mergeIntervalsRaw4(s),mergeIntervalsRaw4(o)),t=[];for(const n of r)subparts4(n.start,n.end,t);for(const r of t)f.push(formatPart4(r))}{const r=subtractSorted6(mergeIntervalsRaw6(a),mergeIntervalsRaw6(i)),t=[];for(const n of r)subparts6(n.start,n.end,t);for(const r of t)f.push(formatPart6(r))}return f}function*expandCidr(r){const t=Array.isArray(r)?r:[r],n=[],e=[];for(const r of t){const t=parseCidrLean(r);4===t.version?n.push(t):e.push(t)}if(n.length>0)for(const r of mergeIntervalsRaw4(n)){let t=-1,n="";for(let e=r.start;e<=r.end;e++){const r=e>>>8;r!==t&&(n=octetDotStrings[e>>>24&255]+octetDotStrings[e>>>16&255]+octetDotStrings[e>>>8&255],t=r),yield n+octetStrings[255&e]}}if(e.length>0){const r={number:0n,version:6};for(const t of mergeIntervalsRaw6(e))for(let n=t.start;n<=t.end;n++)r.number=n,yield stringifyIp(r)}}function overlapCidr(r,t){if(!Array.isArray(r)&&!Array.isArray(t)){if(parseIPv4Range(r)){const r=rangeV4Start,n=rangeV4End;if(parseIPv4Range(t))return r<=rangeV4End&&rangeV4Start<=n}const n=parseCidrLean(r),e=parseCidrLean(t);return n.version===e.version&&(n.start<=e.end&&e.start<=n.end)}const n=Array.isArray(r)?r:[r],e=Array.isArray(t)?t:[t],s=[],a=[],o=[],i=[];for(const r of n){const t=parseCidrLean(r);4===t.version?s.push(t):a.push(t)}for(const r of e){const t=parseCidrLean(r);4===t.version?o.push(t):i.push(t)}if(s.length>0&&o.length>0)if(1===o.length){const r=o[0].start,t=o[0].end;for(const n of s)if(n.start<=t&&r<=n.end)return!0}else if(1===s.length){const r=s[0].start,t=s[0].end;for(const n of o)if(r<=n.end&&n.start<=t)return!0}else{s.sort(cmpV4Start),o.sort(cmpV4Start);let r=0,t=0;for(;r<s.length&&t<o.length;){if(s[r].start<=o[t].end&&o[t].start<=s[r].end)return!0;s[r].end<o[t].end?r++:t++}}if(a.length>0&&i.length>0)if(1===i.length){const r=i[0].start,t=i[0].end;for(const n of a)if(n.start<=t&&r<=n.end)return!0}else if(1===a.length){const r=a[0].start,t=a[0].end;for(const n of i)if(r<=n.end&&n.start<=t)return!0}else{a.sort(cmpV6Start),i.sort(cmpV6Start);let r=0,t=0;for(;r<a.length&&t<i.length;){if(a[r].start<=i[t].end&&i[t].start<=a[r].end)return!0;a[r].end<i[t].end?r++:t++}}return!1}function containsCidr(r,t){if(!Array.isArray(r)&&!Array.isArray(t)){if(parseIPv4Range(r)){const r=rangeV4Start,n=rangeV4End;if(parseIPv4Range(t))return r<=rangeV4Start&&n>=rangeV4End}const n=parseCidrLean(r),e=parseCidrLean(t);return n.version===e.version&&(n.start<=e.start&&n.end>=e.end)}const n=Array.isArray(r)?r:[r],e=Array.isArray(t)?t:[t],s=[],a=[],o=[],i=[];for(const r of n){const t=parseCidrLean(r);4===t.version?s.push(t):a.push(t)}for(const r of e){const t=parseCidrLean(r);4===t.version?o.push(t):i.push(t)}if(o.length>0){if(0===s.length)return!1;if(1===o.length){const r=o[0].start,t=o[0].end;let n=!1;for(const e of s)if(e.start<=r&&e.end>=t){n=!0;break}if(!n)return!1}else{s.sort(cmpV4Start);const r=new Array(s.length);r[0]=s[0].end;for(let t=1;t<s.length;t++)r[t]=Math.max(s[t].end,r[t-1]);for(const t of o){let n=0,e=s.length-1,a=-1;for(;n<=e;){const r=n+e>>1;s[r].start<=t.start?(a=r,n=r+1):e=r-1}if(a<0||r[a]<t.end)return!1}}}if(i.length>0){if(0===a.length)return!1;if(1===i.length){const r=i[0].start,t=i[0].end;let n=!1;for(const e of a)if(e.start<=r&&e.end>=t){n=!0;break}if(!n)return!1}else{a.sort(cmpV6Start);const r=new Array(a.length);r[0]=a[0].end;for(let t=1;t<a.length;t++)r[t]=a[t].end>r[t-1]?a[t].end:r[t-1];for(const t of i){let n=0,e=a.length-1,s=-1;for(;n<=e;){const r=n+e>>1;a[r].start<=t.start?(s=r,n=r+1):e=r-1}if(s<0||r[s]<t.end)return!1}}}return!0}var cidr_tools_default={mergeCidr:mergeCidr,excludeCidr:excludeCidr,expandCidr:expandCidr,overlapCidr:overlapCidr,containsCidr:containsCidr,normalizeCidr:normalizeCidr,parseCidr:parseCidr};export{containsCidr,cidr_tools_default as default,excludeCidr,expandCidr,mergeCidr,normalizeCidr,overlapCidr,parseCidr};
//# sourceMappingURL=/sm/5105c8534490e47e913eeef43f98883e4097c8d80ff05347a74f87a6a0569f7e.map