zater-cep
Version:
ZAter cep correios e via cep
1,449 lines (1,442 loc) • 217 kB
JavaScript
/*! @author Toru Nagashima <https://github.com/mysticatea> */
var ast = Object.freeze({
});
function assert(condition, message) {
if (!condition) {
throw new Error(message || "AssertionError");
}
}
function last(xs) {
return xs.length === 0 ? undefined : xs[xs.length - 1];
}
const legacyImpl = {
at(s, end, i) {
return i < end ? s.charCodeAt(i) : -1;
},
width(c) {
return 1;
},
};
const unicodeImpl = {
at(s, end, i) {
return i < end ? s.codePointAt(i) : -1;
},
width(c) {
return c > 0xffff ? 2 : 1;
},
};
class Reader {
constructor() {
this._impl = legacyImpl;
this._s = "";
this._i = 0;
this._end = 0;
this._cp1 = -1;
this._w1 = 1;
this._cp2 = -1;
this._w2 = 1;
this._cp3 = -1;
this._w3 = 1;
this._cp4 = -1;
}
get source() {
return this._s;
}
get index() {
return this._i;
}
get currentCodePoint() {
return this._cp1;
}
get nextCodePoint() {
return this._cp2;
}
get nextCodePoint2() {
return this._cp3;
}
get nextCodePoint3() {
return this._cp4;
}
reset(source, start, end, uFlag) {
this._impl = uFlag ? unicodeImpl : legacyImpl;
this._s = source;
this._end = end;
this.rewind(start);
}
rewind(index) {
const impl = this._impl;
this._i = index;
this._cp1 = impl.at(this._s, this._end, index);
this._w1 = impl.width(this._cp1);
this._cp2 = impl.at(this._s, this._end, index + this._w1);
this._w2 = impl.width(this._cp2);
this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2);
this._w3 = impl.width(this._cp3);
this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3);
}
advance() {
if (this._cp1 !== -1) {
const impl = this._impl;
this._i += this._w1;
this._cp1 = this._cp2;
this._w1 = this._w2;
this._cp2 = this._cp3;
this._w2 = impl.width(this._cp2);
this._cp3 = this._cp4;
this._w3 = impl.width(this._cp3);
this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3);
}
}
eat(cp) {
if (this._cp1 === cp) {
this.advance();
return true;
}
return false;
}
eat2(cp1, cp2) {
if (this._cp1 === cp1 && this._cp2 === cp2) {
this.advance();
this.advance();
return true;
}
return false;
}
eat3(cp1, cp2, cp3) {
if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {
this.advance();
this.advance();
this.advance();
return true;
}
return false;
}
}
class RegExpSyntaxError extends SyntaxError {
constructor(source, uFlag, index, message) {
if (source) {
if (source[0] !== "/") {
source = `/${source}/${uFlag ? "u" : ""}`;
}
source = `: ${source}`;
}
super(`Invalid regular expression${source}: ${message}`);
this.index = index;
}
}
function isIdStart(cp) {
if (cp < 0x41)
return false;
if (cp < 0x5b)
return true;
if (cp < 0x61)
return false;
if (cp < 0x7b)
return true;
return isLargeIdStart(cp);
}
function isIdContinue(cp) {
if (cp < 0x30)
return false;
if (cp < 0x3a)
return true;
if (cp < 0x41)
return false;
if (cp < 0x5b)
return true;
if (cp === 0x5f)
return true;
if (cp < 0x61)
return false;
if (cp < 0x7b)
return true;
return isLargeIdStart(cp) || isLargeIdContinue(cp);
}
function isLargeIdStart(cp) {
if (cp < 0x303c) {
if (cp < 0xeaa) {
if (cp < 0xa2a) {
if (cp < 0x6d5) {
if (cp < 0x37a) {
if (cp < 0x294) {
if (cp < 0xf8) {
if (cp === 0xaa)
return true;
if (cp === 0xb5)
return true;
if (cp === 0xba)
return true;
if (cp < 0xc0)
return false;
if (cp < 0xd7)
return true;
if (cp < 0xd8)
return false;
if (cp < 0xf7)
return true;
return false;
}
if (cp < 0x1bb)
return true;
if (cp === 0x1bb)
return true;
if (cp < 0x1bc)
return false;
if (cp < 0x1c0)
return true;
if (cp < 0x1c0)
return false;
if (cp < 0x1c4)
return true;
if (cp < 0x1c4)
return false;
if (cp < 0x294)
return true;
return false;
}
if (cp < 0x2ec) {
if (cp === 0x294)
return true;
if (cp < 0x295)
return false;
if (cp < 0x2b0)
return true;
if (cp < 0x2b0)
return false;
if (cp < 0x2c2)
return true;
if (cp < 0x2c6)
return false;
if (cp < 0x2d2)
return true;
if (cp < 0x2e0)
return false;
if (cp < 0x2e5)
return true;
return false;
}
if (cp === 0x2ec)
return true;
if (cp === 0x2ee)
return true;
if (cp < 0x370)
return false;
if (cp < 0x374)
return true;
if (cp === 0x374)
return true;
if (cp < 0x376)
return false;
if (cp < 0x378)
return true;
return false;
}
if (cp < 0x531) {
if (cp < 0x38c) {
if (cp === 0x37a)
return true;
if (cp < 0x37b)
return false;
if (cp < 0x37e)
return true;
if (cp === 0x37f)
return true;
if (cp === 0x386)
return true;
if (cp < 0x388)
return false;
if (cp < 0x38b)
return true;
return false;
}
if (cp === 0x38c)
return true;
if (cp < 0x38e)
return false;
if (cp < 0x3a2)
return true;
if (cp < 0x3a3)
return false;
if (cp < 0x3f6)
return true;
if (cp < 0x3f7)
return false;
if (cp < 0x482)
return true;
if (cp < 0x48a)
return false;
if (cp < 0x530)
return true;
return false;
}
if (cp < 0x620) {
if (cp < 0x531)
return false;
if (cp < 0x557)
return true;
if (cp === 0x559)
return true;
if (cp < 0x561)
return false;
if (cp < 0x588)
return true;
if (cp < 0x5d0)
return false;
if (cp < 0x5eb)
return true;
if (cp < 0x5f0)
return false;
if (cp < 0x5f3)
return true;
return false;
}
if (cp < 0x640)
return true;
if (cp === 0x640)
return true;
if (cp < 0x641)
return false;
if (cp < 0x64b)
return true;
if (cp < 0x66e)
return false;
if (cp < 0x670)
return true;
if (cp < 0x671)
return false;
if (cp < 0x6d4)
return true;
return false;
}
if (cp < 0x904) {
if (cp < 0x7f4) {
if (cp < 0x710) {
if (cp === 0x6d5)
return true;
if (cp < 0x6e5)
return false;
if (cp < 0x6e7)
return true;
if (cp < 0x6ee)
return false;
if (cp < 0x6f0)
return true;
if (cp < 0x6fa)
return false;
if (cp < 0x6fd)
return true;
if (cp === 0x6ff)
return true;
return false;
}
if (cp === 0x710)
return true;
if (cp < 0x712)
return false;
if (cp < 0x730)
return true;
if (cp < 0x74d)
return false;
if (cp < 0x7a6)
return true;
if (cp === 0x7b1)
return true;
if (cp < 0x7ca)
return false;
if (cp < 0x7eb)
return true;
return false;
}
if (cp < 0x828) {
if (cp < 0x7f4)
return false;
if (cp < 0x7f6)
return true;
if (cp === 0x7fa)
return true;
if (cp < 0x800)
return false;
if (cp < 0x816)
return true;
if (cp === 0x81a)
return true;
if (cp === 0x824)
return true;
return false;
}
if (cp === 0x828)
return true;
if (cp < 0x840)
return false;
if (cp < 0x859)
return true;
if (cp < 0x860)
return false;
if (cp < 0x86b)
return true;
if (cp < 0x8a0)
return false;
if (cp < 0x8b5)
return true;
if (cp < 0x8b6)
return false;
if (cp < 0x8be)
return true;
return false;
}
if (cp < 0x9b2) {
if (cp < 0x972) {
if (cp < 0x904)
return false;
if (cp < 0x93a)
return true;
if (cp === 0x93d)
return true;
if (cp === 0x950)
return true;
if (cp < 0x958)
return false;
if (cp < 0x962)
return true;
if (cp === 0x971)
return true;
return false;
}
if (cp < 0x981)
return true;
if (cp < 0x985)
return false;
if (cp < 0x98d)
return true;
if (cp < 0x98f)
return false;
if (cp < 0x991)
return true;
if (cp < 0x993)
return false;
if (cp < 0x9a9)
return true;
if (cp < 0x9aa)
return false;
if (cp < 0x9b1)
return true;
return false;
}
if (cp < 0x9df) {
if (cp === 0x9b2)
return true;
if (cp < 0x9b6)
return false;
if (cp < 0x9ba)
return true;
if (cp === 0x9bd)
return true;
if (cp === 0x9ce)
return true;
if (cp < 0x9dc)
return false;
if (cp < 0x9de)
return true;
return false;
}
if (cp < 0x9e2)
return true;
if (cp < 0x9f0)
return false;
if (cp < 0x9f2)
return true;
if (cp === 0x9fc)
return true;
if (cp < 0xa05)
return false;
if (cp < 0xa0b)
return true;
if (cp < 0xa0f)
return false;
if (cp < 0xa11)
return true;
if (cp < 0xa13)
return false;
if (cp < 0xa29)
return true;
return false;
}
if (cp < 0xc2a) {
if (cp < 0xb2a) {
if (cp < 0xaaa) {
if (cp < 0xa5e) {
if (cp < 0xa2a)
return false;
if (cp < 0xa31)
return true;
if (cp < 0xa32)
return false;
if (cp < 0xa34)
return true;
if (cp < 0xa35)
return false;
if (cp < 0xa37)
return true;
if (cp < 0xa38)
return false;
if (cp < 0xa3a)
return true;
if (cp < 0xa59)
return false;
if (cp < 0xa5d)
return true;
return false;
}
if (cp === 0xa5e)
return true;
if (cp < 0xa72)
return false;
if (cp < 0xa75)
return true;
if (cp < 0xa85)
return false;
if (cp < 0xa8e)
return true;
if (cp < 0xa8f)
return false;
if (cp < 0xa92)
return true;
if (cp < 0xa93)
return false;
if (cp < 0xaa9)
return true;
return false;
}
if (cp < 0xae0) {
if (cp < 0xaaa)
return false;
if (cp < 0xab1)
return true;
if (cp < 0xab2)
return false;
if (cp < 0xab4)
return true;
if (cp < 0xab5)
return false;
if (cp < 0xaba)
return true;
if (cp === 0xabd)
return true;
if (cp === 0xad0)
return true;
return false;
}
if (cp < 0xae2)
return true;
if (cp === 0xaf9)
return true;
if (cp < 0xb05)
return false;
if (cp < 0xb0d)
return true;
if (cp < 0xb0f)
return false;
if (cp < 0xb11)
return true;
if (cp < 0xb13)
return false;
if (cp < 0xb29)
return true;
return false;
}
if (cp < 0xb92) {
if (cp < 0xb5f) {
if (cp < 0xb2a)
return false;
if (cp < 0xb31)
return true;
if (cp < 0xb32)
return false;
if (cp < 0xb34)
return true;
if (cp < 0xb35)
return false;
if (cp < 0xb3a)
return true;
if (cp === 0xb3d)
return true;
if (cp < 0xb5c)
return false;
if (cp < 0xb5e)
return true;
return false;
}
if (cp < 0xb62)
return true;
if (cp === 0xb71)
return true;
if (cp === 0xb83)
return true;
if (cp < 0xb85)
return false;
if (cp < 0xb8b)
return true;
if (cp < 0xb8e)
return false;
if (cp < 0xb91)
return true;
return false;
}
if (cp < 0xba8) {
if (cp < 0xb92)
return false;
if (cp < 0xb96)
return true;
if (cp < 0xb99)
return false;
if (cp < 0xb9b)
return true;
if (cp === 0xb9c)
return true;
if (cp < 0xb9e)
return false;
if (cp < 0xba0)
return true;
if (cp < 0xba3)
return false;
if (cp < 0xba5)
return true;
return false;
}
if (cp < 0xbab)
return true;
if (cp < 0xbae)
return false;
if (cp < 0xbba)
return true;
if (cp === 0xbd0)
return true;
if (cp < 0xc05)
return false;
if (cp < 0xc0d)
return true;
if (cp < 0xc0e)
return false;
if (cp < 0xc11)
return true;
if (cp < 0xc12)
return false;
if (cp < 0xc29)
return true;
return false;
}
if (cp < 0xd5f) {
if (cp < 0xcbd) {
if (cp < 0xc85) {
if (cp < 0xc2a)
return false;
if (cp < 0xc3a)
return true;
if (cp === 0xc3d)
return true;
if (cp < 0xc58)
return false;
if (cp < 0xc5b)
return true;
if (cp < 0xc60)
return false;
if (cp < 0xc62)
return true;
if (cp === 0xc80)
return true;
return false;
}
if (cp < 0xc8d)
return true;
if (cp < 0xc8e)
return false;
if (cp < 0xc91)
return true;
if (cp < 0xc92)
return false;
if (cp < 0xca9)
return true;
if (cp < 0xcaa)
return false;
if (cp < 0xcb4)
return true;
if (cp < 0xcb5)
return false;
if (cp < 0xcba)
return true;
return false;
}
if (cp < 0xd0e) {
if (cp === 0xcbd)
return true;
if (cp === 0xcde)
return true;
if (cp < 0xce0)
return false;
if (cp < 0xce2)
return true;
if (cp < 0xcf1)
return false;
if (cp < 0xcf3)
return true;
if (cp < 0xd05)
return false;
if (cp < 0xd0d)
return true;
return false;
}
if (cp < 0xd11)
return true;
if (cp < 0xd12)
return false;
if (cp < 0xd3b)
return true;
if (cp === 0xd3d)
return true;
if (cp === 0xd4e)
return true;
if (cp < 0xd54)
return false;
if (cp < 0xd57)
return true;
return false;
}
if (cp < 0xe46) {
if (cp < 0xdbd) {
if (cp < 0xd5f)
return false;
if (cp < 0xd62)
return true;
if (cp < 0xd7a)
return false;
if (cp < 0xd80)
return true;
if (cp < 0xd85)
return false;
if (cp < 0xd97)
return true;
if (cp < 0xd9a)
return false;
if (cp < 0xdb2)
return true;
if (cp < 0xdb3)
return false;
if (cp < 0xdbc)
return true;
return false;
}
if (cp === 0xdbd)
return true;
if (cp < 0xdc0)
return false;
if (cp < 0xdc7)
return true;
if (cp < 0xe01)
return false;
if (cp < 0xe31)
return true;
if (cp < 0xe32)
return false;
if (cp < 0xe34)
return true;
if (cp < 0xe40)
return false;
if (cp < 0xe46)
return true;
return false;
}
if (cp < 0xe8d) {
if (cp === 0xe46)
return true;
if (cp < 0xe81)
return false;
if (cp < 0xe83)
return true;
if (cp === 0xe84)
return true;
if (cp < 0xe87)
return false;
if (cp < 0xe89)
return true;
if (cp === 0xe8a)
return true;
return false;
}
if (cp === 0xe8d)
return true;
if (cp < 0xe94)
return false;
if (cp < 0xe98)
return true;
if (cp < 0xe99)
return false;
if (cp < 0xea0)
return true;
if (cp < 0xea1)
return false;
if (cp < 0xea4)
return true;
if (cp === 0xea5)
return true;
if (cp === 0xea7)
return true;
return false;
}
if (cp < 0x1c5a) {
if (cp < 0x1380) {
if (cp < 0x10a0) {
if (cp < 0xf88) {
if (cp < 0xec6) {
if (cp < 0xeaa)
return false;
if (cp < 0xeac)
return true;
if (cp < 0xead)
return false;
if (cp < 0xeb1)
return true;
if (cp < 0xeb2)
return false;
if (cp < 0xeb4)
return true;
if (cp === 0xebd)
return true;
if (cp < 0xec0)
return false;
if (cp < 0xec5)
return true;
return false;
}
if (cp === 0xec6)
return true;
if (cp < 0xedc)
return false;
if (cp < 0xee0)
return true;
if (cp === 0xf00)
return true;
if (cp < 0xf40)
return false;
if (cp < 0xf48)
return true;
if (cp < 0xf49)
return false;
if (cp < 0xf6d)
return true;
return false;
}
if (cp < 0x1061) {
if (cp < 0xf88)
return false;
if (cp < 0xf8d)
return true;
if (cp < 0x1000)
return false;
if (cp < 0x102b)
return true;
if (cp === 0x103f)
return true;
if (cp < 0x1050)
return false;
if (cp < 0x1056)
return true;
if (cp < 0x105a)
return false;
if (cp < 0x105e)
return true;
return false;
}
if (cp === 0x1061)
return true;
if (cp < 0x1065)
return false;
if (cp < 0x1067)
return true;
if (cp < 0x106e)
return false;
if (cp < 0x1071)
return true;
if (cp < 0x1075)
return false;
if (cp < 0x1082)
return true;
if (cp === 0x108e)
return true;
return false;
}
if (cp < 0x1260) {
if (cp < 0x10fd) {
if (cp < 0x10a0)
return false;
if (cp < 0x10c6)
return true;
if (cp === 0x10c7)
return true;
if (cp === 0x10cd)
return true;
if (cp < 0x10d0)
return false;
if (cp < 0x10fb)
return true;
if (cp === 0x10fc)
return true;
return false;
}
if (cp < 0x1249)
return true;
if (cp < 0x124a)
return false;
if (cp < 0x124e)
return true;
if (cp < 0x1250)
return false;
if (cp < 0x1257)
return true;
if (cp === 0x1258)
return true;
if (cp < 0x125a)
return false;
if (cp < 0x125e)
return true;
return false;
}
if (cp < 0x12c0) {
if (cp < 0x1260)
return false;
if (cp < 0x1289)
return true;
if (cp < 0x128a)
return false;
if (cp < 0x128e)
return true;
if (cp < 0x1290)
return false;
if (cp < 0x12b1)
return true;
if (cp < 0x12b2)
return false;
if (cp < 0x12b6)
return true;
if (cp < 0x12b8)
return false;
if (cp < 0x12bf)
return true;
return false;
}
if (cp === 0x12c0)
return true;
if (cp < 0x12c2)
return false;
if (cp < 0x12c6)
return true;
if (cp < 0x12c8)
return false;
if (cp < 0x12d7)
return true;
if (cp < 0x12d8)
return false;
if (cp < 0x1311)
return true;
if (cp < 0x1312)
return false;
if (cp < 0x1316)
return true;
if (cp < 0x1318)
return false;
if (cp < 0x135b)
return true;
return false;
}
if (cp < 0x1844) {
if (cp < 0x170e) {
if (cp < 0x1681) {
if (cp < 0x1380)
return false;
if (cp < 0x1390)
return true;
if (cp < 0x13a0)
return false;
if (cp < 0x13f6)
return true;
if (cp < 0x13f8)
return false;
if (cp < 0x13fe)
return true;
if (cp < 0x1401)
return false;
if (cp < 0x166d)
return true;
if (cp < 0x166f)
return false;
if (cp < 0x1680)
return true;
return false;
}
if (cp < 0x169b)
return true;
if (cp < 0x16a0)
return false;
if (cp < 0x16eb)
return true;
if (cp < 0x16ee)
return false;
if (cp < 0x16f1)
return true;
if (cp < 0x16f1)
return false;
if (cp < 0x16f9)
return true;
if (cp < 0x1700)
return false;
if (cp < 0x170d)
return true;
return false;
}
if (cp < 0x1780) {
if (cp < 0x170e)
return false;
if (cp < 0x1712)
return true;
if (cp < 0x1720)
return false;
if (cp < 0x1732)
return true;
if (cp < 0x1740)
return false;
if (cp < 0x1752)
return true;
if (cp < 0x1760)
return false;
if (cp < 0x176d)
return true;
if (cp < 0x176e)
return false;
if (cp < 0x1771)
return true;
return false;
}
if (cp < 0x17b4)
return true;
if (cp === 0x17d7)
return true;
if (cp === 0x17dc)
return true;
if (cp < 0x1820)
return false;
if (cp < 0x1843)
return true;
if (cp === 0x1843)
return true;
return false;
}
if (cp < 0x19b0) {
if (cp < 0x18b0) {
if (cp < 0x1844)
return false;
if (cp < 0x1878)
return true;
if (cp < 0x1880)
return false;
if (cp < 0x1885)
return true;
if (cp < 0x1885)
return false;
if (cp < 0x1887)
return true;
if (cp < 0x1887)
return false;
if (cp < 0x18a9)
return true;
if (cp === 0x18aa)
return true;
return false;
}
if (cp < 0x18f6)
return true;
if (cp < 0x1900)
return false;
if (cp < 0x191f)
return true;
if (cp < 0x1950)
return false;
if (cp < 0x196e)
return true;
if (cp < 0x1970)
return false;
if (cp < 0x1975)
return true;
if (cp < 0x1980)
return false;
if (cp < 0x19ac)
return true;
return false;
}
if (cp < 0x1b45) {
if (cp < 0x19b0)
return false;
if (cp < 0x19ca)
return true;
if (cp < 0x1a00)
return false;
if (cp < 0x1a17)
return true;
if (cp < 0x1a20)
return false;
if (cp < 0x1a55)
return true;
if (cp === 0x1aa7)
return true;
if (cp < 0x1b05)
return false;
if (cp < 0x1b34)
return true;
return false;
}
if (cp < 0x1b4c)
return true;
if (cp < 0x1b83)
return false;
if (cp < 0x1ba1)
return true;
if (cp < 0x1bae)
return false;
if (cp < 0x1bb0)
return true;
if (cp < 0x1bba)
return false;
if (cp < 0x1be6)
return true;
if (cp < 0x1c00)
return false;
if (cp < 0x1c24)
return true;
if (cp < 0x1c4d)
return false;
if (cp < 0x1c50)
return true;
return false;
}
if (cp < 0x2126) {
if (cp < 0x1f5f) {
if (cp < 0x1d79) {
if (cp < 0x1cf5) {
if (cp < 0x1c5a)
return false;
if (cp < 0x1c78)
return true;
if (cp < 0x1c78)
return false;
if (cp < 0x1c7e)
return true;
if (cp < 0x1c80)
return false;
if (cp < 0x1c89)
return true;
if (cp < 0x1ce9)
return false;
if (cp < 0x1ced)
return true;
if (cp < 0x1cee)
return false;
if (cp < 0x1cf2)
return true;
return false;
}
if (cp < 0x1cf7)
return true;
if (cp < 0x1d00)
return false;
if (cp < 0x1d2c)
return true;
if (cp < 0x1d2c)
return false;
if (cp < 0x1d6b)
return true;
if (cp < 0x1d6b)
return false;
if (cp < 0x1d78)
return true;
if (cp === 0x1d78)
return true;
return false;
}
if (cp < 0x1f48) {
if (cp < 0x1d79)
return false;
if (cp < 0x1d9b)
return true;
if (cp < 0x1d9b)
return false;
if (cp < 0x1dc0)
return true;
if (cp < 0x1e00)
return false;
if (cp < 0x1f16)
return true;
if (cp < 0x1f18)
return false;
if (cp < 0x1f1e)
return true;
if (cp < 0x1f20)
return false;
if (cp < 0x1f46)
return true;
return false;
}
if (cp < 0x1f4e)
return true;
if (cp < 0x1f50)
return false;
if (cp < 0x1f58)
return true;
if (cp === 0x1f59)
return true;
if (cp === 0x1f5b)
return true;
if (cp === 0x1f5d)
return true;
return false;
}
if (cp < 0x1ff6) {
if (cp < 0x1fc6) {
if (cp < 0x1f5f)
return false;
if (cp < 0x1f7e)
return true;
if (cp < 0x1f80)
return false;
if (cp < 0x1fb5)
return true;
if (cp < 0x1fb6)
return false;
if (cp < 0x1fbd)
return true;
if (cp === 0x1fbe)
return true;
if (cp < 0x1fc2)
return false;
if (cp < 0x1fc5)
return true;
return false;
}
if (cp < 0x1fcd)
return true;
if (cp < 0x1fd0)
return false;
if (cp < 0x1fd4)
return true;
if (cp < 0x1fd6)
return false;
if (cp < 0x1fdc)
return true;
if (cp < 0x1fe0)
return false;
if (cp < 0x1fed)
return true;
if (cp < 0x1ff2)
return false;
if (cp < 0x1ff5)
return true;
return false;
}
if (cp < 0x2107) {
if (cp < 0x1ff6)
return false;
if (cp < 0x1ffd)
return true;
if (cp === 0x2071)
return true;
if (cp === 0x207f)
return true;
if (cp < 0x2090)
return false;
if (cp < 0x209d)
return true;
if (cp === 0x2102)
return true;
return false;
}
if (cp === 0x2107)
return true;
if (cp < 0x210a)
return false;
if (cp < 0x2114)
return true;
if (cp === 0x2115)
return true;
if (cp === 0x2118)
return true;
if (cp < 0x2119)
return false;
if (cp < 0x211e)
return true;
if (cp === 0x2124)
return true;
return false;
}
if (cp < 0x2d00) {
if (cp < 0x2160) {
if (cp < 0x2135) {
if (cp === 0x2126)
return true;
if (cp === 0x2128)
return true;
if (cp < 0x212a)
return false;
if (cp < 0x212e)
return true;
if (cp === 0x212e)
return true;
if (cp < 0x212f)
return false;
if (cp < 0x2135)
return true;
return false;
}
if (cp < 0x2139)
return true;
if (cp === 0x2139)
return true;
if (cp < 0x213c)
return false;
if (cp < 0x2140)
return true;
if (cp < 0x2145)
return false;
if (cp < 0x214a)
return true;
if (cp === 0x214e)
return true;
return false;
}
if (cp < 0x2c60) {
if (cp < 0x2160)
return false;
if (cp < 0x2183)
return true;
if (cp < 0x2183)
return false;
if (cp < 0x2185)
return true;
if (cp < 0x2185)
return false;
if (cp < 0x2189)
return true;
if (cp < 0x2c00)
return false;
if (cp < 0x2c2f)
return true;
if (cp < 0x2c30)
return false;
if (cp < 0x2c5f)
return true;
return false;
}
if (cp < 0x2c7c)
return true;
if (cp < 0x2c7c)
return false;
if (cp < 0x2c7e)
return true;
if (cp < 0x2c7e)
return false;
if (cp < 0x2ce5)
return true;
if (cp < 0x2ceb)
return false;
if (cp < 0x2cef)
return true;
if (cp < 0x2cf2)
return false;
if (cp < 0x2cf4)
return true;
return false;
}
if (cp < 0x2dc0) {
if (cp < 0x2d80) {
if (cp < 0x2d00)
return false;
if (cp < 0x2d26)
return true;
if (cp === 0x2d27)
return true;
if (cp === 0x2d2d)
return true;
if (cp < 0x2d30)
return false;
if (cp < 0x2d68)
return true;
if (cp === 0x2d6f)
return true;
return false;
}
if (cp < 0x2d97)
return true;
if (cp < 0x2da0)
return false;
if (cp < 0x2da7)
return true;
if (cp < 0x2da8)
return false;
if (cp < 0x2daf)
return true;
if (cp < 0x2db0)
return false;
if (cp < 0x2db7)
return true;
if (cp < 0x2db8)
return false;
if (cp < 0x2dbf)
return true;
return false;
}
if (cp < 0x3006) {
if (cp < 0x2dc0)
return false;
if (cp < 0x2dc7)
return true;
if (cp < 0x2dc8)
return false;
if (cp < 0x2dcf)
return true;
if (cp < 0x2dd0)
return false;
if (cp < 0x2dd7)
return true;
if (cp < 0x2dd8)
return false;
if (cp < 0x2ddf)
return true;
if (cp === 0x3005)
return true;
return false;
}
if (cp === 0x3006)
return true;
if (cp === 0x3007)
return true;
if (cp < 0x3021)
return false;
if (cp < 0x302a)
return true;
if (cp < 0x3031)
return false;
if (cp < 0x3036)
return true;
if (cp < 0x3038)
return false;
if (cp < 0x303b)
return true;
if (cp === 0x303b)
return true;
return false;
}
if (cp < 0x10a10) {
if (cp < 0xab28) {
if (cp < 0xa7fa) {
if (cp < 0xa60c) {
if (cp < 0x31a0) {
if (cp < 0x30a1) {
if (cp === 0x303c)
return true;
if (cp < 0x3041