/**
 * Minified by jsDelivr using Terser v5.48.0.
 * Original file: /npm/cidr-tools@13.0.4/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import cidrRegex from"cidr-regex";import{parseIp,stringifyIp}from"ip-bigint";const bits={4:32,6:128},octetStrings=Array.from({length:256},(t,r)=>String(r)),octetDotStrings=Array.from({length:256},(t,r)=>`${r}.`),prefixStrings=Array.from({length:129},(t,r)=>`/${r}`),prefixNumStrings=Array.from({length:129},(t,r)=>String(r)),hexStrings=Array.from({length:256},(t,r)=>r.toString(16)),hexPadStrings=Array.from({length:256},(t,r)=>r.toString(16).padStart(2,"0")),hostMasks=Array.from({length:129},(t,r)=>(1n<<BigInt(r))-1n),hostNotMasks=hostMasks.map(t=>~t),networkRe=cidrRegex({exact:!0,prefix:"optional"}),unchecked={validate:!1};function invalidNetwork(t){return new Error(`Network is not a CIDR or IP: "${t}"`)}function checkNetwork(t){if(!networkRe.test(t))throw invalidNetwork(t)}function checkNetworks(t,r){if(!1!==r?.validate)if("string"==typeof t)checkNetwork(t);else for(const r of t)checkNetwork(r)}const cmpV4StartEnd=(t,r)=>t.start-r.start||t.end-r.end,cmpV4Start=(t,r)=>t.start-r.start,cmpV6StartEnd=(t,r)=>t.start>r.start?1:t.start<r.start?-1:t.end>r.end?1:t.end<r.end?-1:0,cmpV6Start=(t,r)=>t.start>r.start?1:t.start<r.start?-1:0,hostMasks4=Int32Array.from({length:33},(t,r)=>32===r?-1:(1<<r)-1);function formatIPv4Fast(t){return octetDotStrings[t>>>24&255]+octetDotStrings[t>>>16&255]+octetDotStrings[t>>>8&255]+octetStrings[255&t]}function parseIPv4Fast(t,r){let e=0,n=0,s=0,o=0;for(let i=0;i<r;i++){const r=t.charCodeAt(i);if(r>=48&&r<=57)n=10*n+(r-48),o++;else{if(46!==r)return-1;if(0===o||n>255)return-1;e=e<<8|n,n=0,s++,o=0}}return 3!==s||0===o||n>255?-1:(e<<8|n)>>>0}function parsePrefixNum(t,r){if(r+1>=t.length)throw invalidNetwork(t);let e=0;for(let n=r+1;n<t.length;n++){const r=t.charCodeAt(n);if(r<48||r>57)throw invalidNetwork(t);e=10*e+(r-48)}return e}let rangeV4Start=0,rangeV4End=0,rangeV4Prefix=0,rangeSlashIndex=-1;function parseIPv4Range(t){const r=t.length;let e=0,n=0,s=0,o=0,i=0;for(;i<r;i++){const r=t.charCodeAt(i);if(r>=48&&r<=57)n=10*n+(r-48),o++;else{if(46!==r)break;if(0===o||n>255)break;e=e<<8|n,n=0,s++,o=0}}if(i<r&&47===t.charCodeAt(i))rangeSlashIndex=i;else if(rangeSlashIndex=t.indexOf("/",i),i<r)return!1;if(3!==s||0===o||n>255)return!1;const a=(e<<8|n)>>>0;rangeV4Prefix=-1!==rangeSlashIndex?parsePrefixNum(t,rangeSlashIndex):32;const f=hostMasks4[Math.max(32-rangeV4Prefix,0)];return rangeV4Start=(a&~f)>>>0,rangeV4End=(a|f)>>>0,!0}function formatPrefix(t){return prefixStrings[t]??`/${t}`}function doNormalize(t,r){if(parseIPv4Range(t)){const t=formatIPv4Fast(rangeV4Start);return-1!==rangeSlashIndex?t+formatPrefix(rangeV4Prefix):t}const e=rangeSlashIndex,n=-1!==e;let s=n?parsePrefixNum(t,e):-1;const{number:o,version:i,ipv4mapped:a,scopeid:f}=parseIp(n?t.substring(0,e):t,unchecked);if(-1===s&&(s=bits[i]),4===i){const t=hostMasks4[Math.max(32-s,0)],r=formatIPv4Fast((Number(o)&~t)>>>0);return n?r+formatPrefix(s):r}const c=r?.compress??!0,d=r?.hexify??!1;if(!n)return stringifyIp({number:o,version:i,ipv4mapped:a,scopeid:f},{compress:c,hexify:d});const g=128-s,p=g>0?o&hostNotMasks[g]:o;return stringifyIp({number:p,version:i,ipv4mapped:a&&p>>32n==65535n,scopeid:f},{compress:c,hexify:d})+formatPrefix(s)}function normalizeCidr(t,r){return checkNetworks(t,r),"string"==typeof t?doNormalize(t,r):t.map(t=>doNormalize(t,r))}function parseCidr(t,r){!1!==r?.validate&&checkNetwork(t);const e=t.indexOf("/"),n=-1!==e,s=parseIPv4Fast(t,n?e:t.length);if(-1!==s){const r=n?parsePrefixNum(t,e):32,o=formatIPv4Fast(s),i=hostMasks4[Math.max(32-r,0)];return{cidr:o+formatPrefix(r),ip:o,version:4,prefix:prefixNumStrings[r]??String(r),prefixPresent:n,start:BigInt((s&~i)>>>0),end:BigInt((s|i)>>>0)}}let o=n?parsePrefixNum(t,e):-1;const{number:i,version:a,ipv4mapped:f,scopeid:c}=parseIp(n?t.substring(0,e):t,unchecked),d=bits[a];-1===o&&(o=d);const g=stringifyIp({number:i,version:a,ipv4mapped:f,scopeid:c}),p=d-o;let u=i,l=i;return p>0&&(u=i&hostNotMasks[p],l=i|hostMasks[p]),{cidr:g+formatPrefix(o),ip:g,version:a,prefix:prefixNumStrings[o]??String(o),prefixPresent:n,start:u,end:l}}function parseCidrLeanSlow(t){const r=rangeSlashIndex;let e=-1!==r?parsePrefixNum(t,r):-1;const{number:n,version:s}=parseIp(-1!==r?t.substring(0,r):t,unchecked),o=bits[s];-1===e&&(e=o);const i=o-e;if(4===s){const t=Number(n),r=hostMasks4[Math.max(i,0)];return{start:(t&~r)>>>0,end:(t|r)>>>0,version:4}}return i<=0?{start:n,end:n,version:6}:{start:n&hostNotMasks[i],end:n|hostMasks[i],version:6}}function parseCidrLean(t){return parseIPv4Range(t)?{start:rangeV4Start,end:rangeV4End,version:4}:parseCidrLeanSlow(t)}function bigintBitLength(t){let r=0;for(t>=18446744073709551616n&&(t>>=64n,r=64);t>=4294967296n;)t>>=32n,r+=32;return r+32-Math.clz32(Number(t))}function biggestPowerOfTwo4(t){return t>=4294967296?4294967296:1<<31-Math.clz32(t)>>>0}function subparts4(t,r,e){let n=t;for(;n<=r;){const t=r-n+1,s=(n&-n)>>>0,o=0!==s&&s<=t?s:biggestPowerOfTwo4(t);e.push(formatIPv4Fast(n)+prefixStrings[Math.clz32(o-1)]),n+=o}}function subparts6(t,r,e){const n=r-t+1n,s=t&-t;if(0n==(n&n-1n)&&(0n===s||s>=n))return void e.push(stringifyIp({number:t,version:6})+prefixStrings[129-bigintBitLength(n)]);let o=t;for(;o<=r;){const t=r-o+1n,n=o&-o,s=0n!==n&&n<=t,i=bigintBitLength(s?n:t);e.push(stringifyIp({number:o,version:6})+prefixStrings[129-i]),o+=s?n:1n<<BigInt(i-1)}}function mergeIntervalsRaw4(t){if(t.length<2)return t;t.sort(cmpV4StartEnd);let r=0,e=t[0];for(let n=1;n<t.length;n++){const{start:s,end:o}=t[n];s<=e.end+1?o>e.end&&(e.end=o):(e=t[++r],e.start=s,e.end=o)}return t.length=r+1,t}function mergeIntervalsRaw6(t){if(t.length<2)return t;t.sort(cmpV6StartEnd);let r=0,e=t[0];for(let n=1;n<t.length;n++){const{start:s,end:o}=t[n];s<=e.end+1n?o>e.end&&(e.end=o):(e=t[++r],e.start=s,e.end=o)}return t.length=r+1,t}function subtractSorted4(t,r){if(0===r.length)return t;const e=[];let n=0;for(const s of t){let t=s.start;const o=s.end;for(;n<r.length&&r[n].end<t;)n++;let i=n;for(;i<r.length&&r[i].start<=o&&t<=o;)r[i].start>t&&e.push({start:t,end:r[i].start-1}),t=r[i].end+1,i++;t<=o&&e.push({start:t,end:o})}return e}function subtractSorted6(t,r){if(0===r.length)return t;const e=[];let n=0;for(const s of t){let t=s.start;const o=s.end;for(;n<r.length&&r[n].end<t;)n++;let i=n;for(;i<r.length&&r[i].start<=o&&t<=o;)r[i].start>t&&e.push({start:t,end:r[i].start-1n}),t=r[i].end+1n,i++;t<=o&&e.push({start:t,end:o})}return e}function mergeCidr(t,r){checkNetworks(t,r);const e=[],n=[];for(const r of"string"==typeof t?[t]:t){const t=parseCidrLean(r);4===t.version?e.push(t):n.push(t)}const s=[];for(const t of mergeIntervalsRaw4(e))subparts4(t.start,t.end,s);for(const t of mergeIntervalsRaw6(n))subparts6(t.start,t.end,s);return s}function excludeCidr(t,r,e){checkNetworks(t,e),checkNetworks(r,e);const n=[],s=[],o=[],i=[];for(const r of"string"==typeof t?[t]:t){const t=parseCidrLean(r);4===t.version?n.push(t):s.push(t)}for(const t of"string"==typeof r?[r]:r){const r=parseCidrLean(t);4===r.version?o.push(r):i.push(r)}const a=[];if(n.length>0)for(const t of subtractSorted4(mergeIntervalsRaw4(n),mergeIntervalsRaw4(o)))subparts4(t.start,t.end,a);if(s.length>0)for(const t of subtractSorted6(mergeIntervalsRaw6(s),mergeIntervalsRaw6(i)))subparts6(t.start,t.end,a);return a}function expandCidr(t,r){return checkNetworks(t,r),expandChecked(t)}function*expandChecked(t){const r=[],e=[];for(const n of"string"==typeof t?[t]:t){const t=parseCidrLean(n);4===t.version?r.push(t):e.push(t)}for(const t of mergeIntervalsRaw4(r)){let r=-1,e="";for(let n=t.start;n<=t.end;n++){const t=n>>>8;t!==r&&(e=octetDotStrings[n>>>24&255]+octetDotStrings[n>>>16&255]+octetDotStrings[n>>>8&255],r=t),yield e+octetStrings[255&n]}}if(e.length>0){const t={number:0n,version:6};for(const r of mergeIntervalsRaw6(e)){let e=r.start;for(;e<=r.end;){const n=-65536n&e,s=65535n|n;let o=Number(65535n&e);const i=r.end<s?Number(65535n&r.end):65535;if(0===o&&(t.number=n,yield stringifyIp(t),o=1),o<=i){t.number=1n|n;const r=stringifyIp(t).slice(0,-1);for(;o<=i;o++)yield o<256?r+hexStrings[o]:r+hexStrings[o>>>8]+hexPadStrings[255&o]}e=s+1n}}}}function overlapCidr(t,r,e){if(checkNetworks(t,e),checkNetworks(r,e),"string"==typeof t&&"string"==typeof r){if(parseIPv4Range(t)){const t=rangeV4Start,e=rangeV4End;if(parseIPv4Range(r))return t<=rangeV4End&&rangeV4Start<=e;const n=parseCidrLeanSlow(r);return 4===n.version&&(t<=n.end&&n.start<=e)}const e=parseCidrLeanSlow(t),n=parseCidrLean(r);return e.version===n.version&&(e.start<=n.end&&n.start<=e.end)}const n=[],s=[],o=[],i=[];for(const r of"string"==typeof t?[t]:t){const t=parseCidrLean(r);4===t.version?n.push(t):s.push(t)}for(const t of"string"==typeof r?[r]:r){const r=parseCidrLean(t);4===r.version?o.push(r):i.push(r)}if(n.length>0&&o.length>0)if(1===n.length||1===o.length){const t=1===o.length,r=t?o[0]:n[0];for(const e of t?n:o)if(r.start<=e.end&&e.start<=r.end)return!0}else{n.sort(cmpV4Start),o.sort(cmpV4Start);let t=0,r=0;for(;t<n.length&&r<o.length;){if(n[t].start<=o[r].end&&o[r].start<=n[t].end)return!0;n[t].end<o[r].end?t++:r++}}if(s.length>0&&i.length>0)if(1===s.length||1===i.length){const t=1===i.length,r=t?i[0]:s[0];for(const e of t?s:i)if(r.start<=e.end&&e.start<=r.end)return!0}else{s.sort(cmpV6Start),i.sort(cmpV6Start);let t=0,r=0;for(;t<s.length&&r<i.length;){if(s[t].start<=i[r].end&&i[r].start<=s[t].end)return!0;s[t].end<i[r].end?t++:r++}}return!1}function containsCidr(t,r,e){if(checkNetworks(t,e),checkNetworks(r,e),"string"==typeof t&&"string"==typeof r){if(parseIPv4Range(t)){const t=rangeV4Start,e=rangeV4End;if(parseIPv4Range(r))return t<=rangeV4Start&&e>=rangeV4End;const n=parseCidrLeanSlow(r);return 4===n.version&&(t<=n.start&&e>=n.end)}const e=parseCidrLeanSlow(t),n=parseCidrLean(r);return e.version===n.version&&(e.start<=n.start&&e.end>=n.end)}const n=[],s=[],o=[],i=[];for(const r of"string"==typeof t?[t]:t){const t=parseCidrLean(r);4===t.version?n.push(t):s.push(t)}for(const t of"string"==typeof r?[r]:r){const r=parseCidrLean(t);4===r.version?o.push(r):i.push(r)}if(o.length>0){if(0===n.length)return!1;let t=!1;for(const r of o){const e=r.start,s=r.end;let o=!1;for(const t of n)if(!(t.start>e||t.end<s)){o=!0;break}if(o)continue;t||(n.sort(cmpV4Start),t=!0);let i=e;for(const t of n){if(t.start>i)break;if(t.end>=i){if(t.end>=s){o=!0;break}i=t.end+1}}if(!o)return!1}}if(i.length>0){if(0===s.length)return!1;let t=!1;for(const r of i){const e=r.start,n=r.end;let o=!1;for(const t of s)if(!(t.start>e||t.end<n)){o=!0;break}if(o)continue;t||(s.sort(cmpV6Start),t=!0);let i=e;for(const t of s){if(t.start>i)break;if(t.end>=i){if(t.end>=n){o=!0;break}i=t.end+1n}}if(!o)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/0b3db7de573fcbd8afd86350522f1de5c45c55f98812373064c5f95cfcab9e8a.map