solfaces 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/names/sha256.ts","../src/names/constants.ts","../src/names/derive.ts","../src/names/validate.ts"],"names":[],"mappings":"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","file":"chunk-N5DDJ3WQ.js","sourcesContent":["// ═══════════════════════════════════════════════════════════════\n// Pure-JS SHA-256 — NIST FIPS 180-4\n// Synchronous, zero dependencies, works in all JS environments.\n// ═══════════════════════════════════════════════════════════════\n\nconst K: readonly number[] = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n];\n\nfunction rotr(n: number, x: number): number {\n return (x >>> n) | (x << (32 - n));\n}\n\nexport function sha256(input: string): Uint8Array {\n // Encode UTF-8\n const encoder = new TextEncoder();\n const msg = encoder.encode(input);\n const bitLen = msg.length * 8;\n\n // Padding: append 1-bit, zeros, then 64-bit big-endian length\n const padLen = 64 - ((msg.length + 9) % 64);\n const totalLen = msg.length + 1 + (padLen === 64 ? 0 : padLen) + 8;\n const buf = new Uint8Array(totalLen);\n buf.set(msg);\n buf[msg.length] = 0x80;\n // Write 64-bit big-endian length (we only use lower 32 bits since JS strings are limited)\n const dv = new DataView(buf.buffer);\n dv.setUint32(totalLen - 4, bitLen, false);\n\n // Initial hash values\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n\n const W = new Int32Array(64);\n\n // Process each 512-bit (64-byte) block\n for (let offset = 0; offset < totalLen; offset += 64) {\n for (let i = 0; i < 16; i++) {\n W[i] = dv.getInt32(offset + i * 4, false);\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(7, W[i - 15]) ^ rotr(18, W[i - 15]) ^ (W[i - 15] >>> 3);\n const s1 = rotr(17, W[i - 2]) ^ rotr(19, W[i - 2]) ^ (W[i - 2] >>> 10);\n W[i] = (W[i - 16] + s0 + W[i - 7] + s1) | 0;\n }\n\n let a = h0, b = h1, c = h2, d = h3;\n let e = h4, f = h5, g = h6, h = h7;\n\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(6, e) ^ rotr(11, e) ^ rotr(25, e);\n const ch = (e & f) ^ (~e & g);\n const temp1 = (h + S1 + ch + K[i] + W[i]) | 0;\n const S0 = rotr(2, a) ^ rotr(13, a) ^ rotr(22, a);\n const maj = (a & b) ^ (a & c) ^ (b & c);\n const temp2 = (S0 + maj) | 0;\n\n h = g; g = f; f = e; e = (d + temp1) | 0;\n d = c; c = b; b = a; a = (temp1 + temp2) | 0;\n }\n\n h0 = (h0 + a) | 0; h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0; h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0; h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0; h7 = (h7 + h) | 0;\n }\n\n const out = new Uint8Array(32);\n const outView = new DataView(out.buffer);\n outView.setUint32(0, h0, false); outView.setUint32(4, h1, false);\n outView.setUint32(8, h2, false); outView.setUint32(12, h3, false);\n outView.setUint32(16, h4, false); outView.setUint32(20, h5, false);\n outView.setUint32(24, h6, false); outView.setUint32(28, h7, false);\n return out;\n}\n\nexport function sha256Hex(input: string): string {\n return Array.from(sha256(input))\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Word Lists & Constants\n// 1000 adjectives × 1000 nouns = 1,000,000 display name combos.\n// All words are positive or neutral. No negative, offensive, or\n// embarrassing terms. PascalCase for concatenation readability.\n// ═══════════════════════════════════════════════════════════════\n\nexport const SOLNAMES_VERSION = \"v1\" as const;\n\nexport type NameFormat = \"short\" | \"display\" | \"tag\" | \"full\";\n\nexport interface SolNameIdentity {\n short: string;\n name: string;\n tag: string;\n full: string;\n adjective: string;\n noun: string;\n hash: string;\n discriminator: string;\n}\n\n// ─── Adjectives (1000) ──────────────────────────────────────────\nexport const ADJECTIVES: readonly string[] = Object.freeze([\n \"Frost\",\"Solar\",\"Coral\",\"Amber\",\"Mossy\",\"Lunar\",\"Misty\",\"Alpine\",\n \"Autumn\",\"Breeze\",\"Cerulean\",\"Cloudy\",\"Cosmic\",\"Crystal\",\"Dewy\",\"Dusty\",\n \"Earthy\",\"Floral\",\"Forest\",\"Frozen\",\"Glacial\",\"Golden\",\"Grassy\",\"Harbor\",\n \"Ivory\",\"Jasmine\",\"Lagoon\",\"Leafy\",\"Lush\",\"Marine\",\"Meadow\",\"Mineral\",\n \"Mosaic\",\"Nectar\",\"Nordic\",\"Oceanic\",\"Orchid\",\"Pearly\",\"Petal\",\"Polar\",\n \"Prairie\",\"Rain\",\"River\",\"Rocky\",\"Sandy\",\"Savanna\",\"Shore\",\"Sierra\",\n \"Snowy\",\"Spring\",\"Starry\",\"Stone\",\"Summer\",\"Sunset\",\"Tidal\",\"Timber\",\n \"Tropic\",\"Tundra\",\"Valley\",\"Verdant\",\"Winding\",\"Winter\",\"Woody\",\"Bloom\",\n \"Blossom\",\"Brook\",\"Canyon\",\"Cedar\",\"Cloud\",\"Comet\",\"Copper\",\"Dawn\",\n \"Delta\",\"Dune\",\"Eclipse\",\"Fern\",\"Flame\",\"Flora\",\"Glade\",\"Azure\",\n \"Cobalt\",\"Crimson\",\"Indigo\",\"Scarlet\",\"Sapphire\",\"Emerald\",\"Ruby\",\"Garnet\",\n \"Onyx\",\"Jade\",\"Turquoise\",\"Magenta\",\"Plum\",\"Russet\",\"Tawny\",\"Burnt\",\n \"Gilded\",\"Platinum\",\"Bronze\",\"Chrome\",\"Pearl\",\"Opal\",\"Blush\",\"Rosy\",\n \"Dusky\",\"Inky\",\"Ashen\",\"Cream\",\"Slate\",\"Charcoal\",\"Steel\",\"Pewter\",\n \"Honey\",\"Saffron\",\"Citrus\",\"Lemon\",\"Tangerine\",\"Peach\",\"Apricot\",\"Vermilion\",\n \"Mauve\",\"Lilac\",\"Periwinkle\",\"Cerise\",\"Maroon\",\"Burgundy\",\"Wine\",\"Berry\",\n \"Cherry\",\"Mint\",\"Olive\",\"Teal\",\"Navy\",\"Cyan\",\"Neon\",\"Pastel\",\n \"Muted\",\"Lustrous\",\"Gleaming\",\"Glossy\",\"Shining\",\"Glowing\",\"Luminous\",\"Brilliant\",\n \"Sparkling\",\"Shimmering\",\"Iridescent\",\"Prismatic\",\"Spectral\",\"Twilight\",\"Sunrise\",\"Sunlit\",\n \"Moonlit\",\"Starlit\",\"Candlelit\",\"Firelit\",\"Sunbeam\",\"Afterglow\",\"Halo\",\"Flicker\",\n \"Glow\",\"Ray\",\"Beam\",\"Blaze\",\"Glint\",\"Spark\",\"Arc\",\"Prism\",\n \"Spectrum\",\"Rainbow\",\"Aurora\",\"Nebula\",\"Stellar\",\"Astral\",\"Lucent\",\"Frosted\",\n \"Swift\",\"Bold\",\"Keen\",\"Brave\",\"Noble\",\"Serene\",\"Fierce\",\"Gentle\",\n \"Agile\",\"Alert\",\"Astute\",\"Candid\",\"Clever\",\"Daring\",\"Eager\",\"Earnest\",\n \"Fair\",\"Gallant\",\"Graceful\",\"Hardy\",\"Honest\",\"Humble\",\"Jovial\",\"Joyful\",\n \"Kind\",\"Loyal\",\"Merry\",\"Mindful\",\"Nimble\",\"Patient\",\"Plucky\",\"Proud\",\n \"Quick\",\"Ready\",\"Resilient\",\"Savvy\",\"Sincere\",\"Skilled\",\"Steady\",\"Stout\",\n \"Strong\",\"Sure\",\"Tender\",\"True\",\"Valiant\",\"Willing\",\"Wise\",\"Witty\",\n \"Worthy\",\"Zealous\",\"Active\",\"Adept\",\"Ardent\",\"Avid\",\"Benign\",\"Bright\",\n \"Civil\",\"Clean\",\"Clear\",\"Composed\",\"Content\",\"Courtly\",\"Crafty\",\"Curious\",\n \"Decent\",\"Devout\",\"Diligent\",\"Direct\",\"Driven\",\"Dynamic\",\"Elegant\",\"Elite\",\n \"Even\",\"Exact\",\"Famed\",\"Fervent\",\"Fine\",\"Firm\",\"Fit\",\"Fluid\",\n \"Focal\",\"Fond\",\"Frank\",\"Free\",\"Fresh\",\"Friendly\",\"Frugal\",\"Gifted\",\n \"Glad\",\"Grand\",\"Great\",\"Green\",\"Grounded\",\"Hale\",\"Happy\",\"Hearty\",\n \"Heroic\",\"Ideal\",\"Infinite\",\"Inner\",\"Intact\",\"Intent\",\"Just\",\"Lively\",\n \"Lucky\",\"Major\",\"Mellow\",\"Mighty\",\"Modest\",\"Natural\",\"Neat\",\"Optimal\",\n \"Original\",\"Pacific\",\"Peaceful\",\"Pious\",\"Pleased\",\"Poised\",\"Polite\",\"Popular\",\n \"Potent\",\"Precious\",\"Premier\",\"Prime\",\"Proper\",\"Proven\",\"Pure\",\"Quiet\",\n \"Rapid\",\"Rare\",\"Real\",\"Regal\",\"Rich\",\"Rising\",\"Robust\",\"Royal\",\n \"Sacred\",\"Safe\",\"Scenic\",\"Secure\",\"Senior\",\"Sharp\",\"Simple\",\"Smart\",\n \"Smooth\",\"Snug\",\"Social\",\"Solid\",\"Sound\",\"Special\",\"Stable\",\"Stately\",\n \"Still\",\"Super\",\"Supreme\",\"Sweet\",\"Thorough\",\"Tidy\",\"Top\",\"Total\",\n \"Tough\",\"Trim\",\"Trusted\",\"Ultimate\",\"Unique\",\"United\",\"Upper\",\"Useful\",\n \"Valid\",\"Valued\",\"Varied\",\"Vital\",\"Vivid\",\"Vocal\",\"Whole\",\"Wide\",\n \"Young\",\"Zesty\",\"Iron\",\"Gold\",\"Silver\",\"Marble\",\"Granite\",\"Velvet\",\n \"Satin\",\"Silk\",\"Linen\",\"Cotton\",\"Suede\",\"Denim\",\"Canvas\",\"Leather\",\n \"Wooden\",\"Bamboo\",\"Wicker\",\"Woven\",\"Braided\",\"Knit\",\"Lace\",\"Mesh\",\n \"Fiber\",\"Glass\",\"Mirror\",\"Diamond\",\"Flint\",\"Basalt\",\"Obsidian\",\"Chalk\",\n \"Clay\",\"Gravel\",\"Pebble\",\"Cobble\",\"Brick\",\"Tile\",\"Resin\",\"Fossil\",\n \"Shell\",\"Bone\",\"Feather\",\"Plush\",\"Brushed\",\"Polished\",\"Hammered\",\"Forged\",\n \"Cast\",\"Molten\",\"Tempered\",\"Etched\",\"Carved\",\"Sculpted\",\"Spun\",\"Pressed\",\n \"Rolled\",\"Folded\",\"Layered\",\"Stacked\",\"Ribbed\",\"Matte\",\"Lacquered\",\"Enameled\",\n \"Glazed\",\"Painted\",\"Dyed\",\"Stained\",\"Refined\",\"Distilled\",\"Purified\",\"Filtered\",\n \"Alloyed\",\"Plated\",\"Coated\",\"Sealed\",\"Bonded\",\"Fused\",\"Welded\",\"Riveted\",\n \"Textured\",\"Grained\",\"Veined\",\"Flecked\",\"Speckled\",\"Dappled\",\"Streaked\",\"Banded\",\n \"Striped\",\"Checkered\",\"Waxed\",\"Oiled\",\"Cured\",\"Tanned\",\"Smoked\",\"Burnished\",\n \"Antiqued\",\"Patina\",\"Weathered\",\"Aged\",\"Rustic\",\"Hewn\",\"Vast\",\"Broad\",\n \"Deep\",\"High\",\"Tall\",\"Giant\",\"Colossal\",\"Massive\",\"Immense\",\"Boundless\",\n \"Endless\",\"Sweeping\",\"Spanning\",\"Extended\",\"Towering\",\"Soaring\",\"Lofty\",\"Elevated\",\n \"Raised\",\"Summit\",\"Apex\",\"Crest\",\"Crown\",\"Pinnacle\",\"Zenith\",\"Ridge\",\n \"Ledge\",\"Level\",\"Hollow\",\"Compact\",\"Dense\",\"Thick\",\"Narrow\",\"Slender\",\n \"Micro\",\"Mini\",\"Small\",\"Ample\",\"Hefty\",\"Jumbo\",\"Mega\",\"Ultra\",\n \"Macro\",\"Central\",\"Core\",\"Outer\",\"Lateral\",\"Radial\",\"Spiral\",\"Orbital\",\n \"Linear\",\"Planar\",\"Spherical\",\"Rounded\",\"Angular\",\"Pointed\",\"Tapered\",\"Curved\",\n \"Arced\",\"Twisted\",\"Coiled\",\"Fractal\",\"Cellular\",\"Quantum\",\"Photon\",\"Plasma\",\n \"Kinetic\",\"Static\",\"Charged\",\"Maximal\",\"Atomic\",\"Nano\",\"Tiered\",\"Strata\",\n \"Nested\",\"Stepped\",\"Graded\",\"Scaled\",\"Proportioned\",\"Modular\",\"Symmetric\",\"Parallel\",\n \"Flowing\",\"Drifting\",\"Gliding\",\"Sailing\",\"Floating\",\"Climbing\",\"Leaping\",\"Bounding\",\n \"Sprinting\",\"Dashing\",\"Rushing\",\"Surging\",\"Cascading\",\"Rolling\",\"Tumbling\",\"Spinning\",\n \"Whirling\",\"Twisting\",\"Swirling\",\"Pulsing\",\"Beating\",\"Humming\",\"Buzzing\",\"Ringing\",\n \"Chiming\",\"Singing\",\"Dancing\",\"Swaying\",\"Waving\",\"Rippling\",\"Bubbling\",\"Fizzing\",\n \"Crackling\",\"Snapping\",\"Clicking\",\"Tapping\",\"Drumming\",\"Thrumming\",\"Vibrant\",\"Magnetic\",\n \"Electric\",\"Blazing\",\"Burning\",\"Fiery\",\"Volcanic\",\"Thermal\",\"Warming\",\"Cooling\",\n \"Chilling\",\"Brisk\",\"Crisp\",\"Breezy\",\"Gusty\",\"Windy\",\"Airy\",\"Light\",\n \"Buoyant\",\"Weightless\",\"Fleet\",\"Peppy\",\"Zippy\",\"Snappy\",\"Speedy\",\"Sonic\",\n \"Turbo\",\"Warp\",\"Express\",\"Instant\",\"Darting\",\"Flying\",\"Jetting\",\"Cruising\",\n \"Coasting\",\"Rhythmic\",\"Cycling\",\"Pacing\",\"Striding\",\"Marching\",\"Trotting\",\"Galloping\",\n \"Bouncing\",\"Vaulting\",\"Arching\",\"Launched\",\"Propelled\",\"Hovering\",\"Orbiting\",\"Revolving\",\n \"Rotating\",\"Pivoting\",\"Swinging\",\"Rocking\",\"Tilting\",\"Shifting\",\"Sliding\",\"Skating\",\n \"Surfing\",\"Diving\",\"Plunging\",\"Dipping\",\"Wading\",\"Celestial\",\"Ethereal\",\"Mystic\",\n \"Arcane\",\"Ancient\",\"Eternal\",\"Timeless\",\"Ageless\",\"Enduring\",\"Lasting\",\"Perpetual\",\n \"Legendary\",\"Mythic\",\"Epic\",\"Fabled\",\"Storied\",\"Historic\",\"Classic\",\"Vintage\",\n \"Retro\",\"Modern\",\"Future\",\"Digital\",\"Cyber\",\"Virtual\",\"Pixel\",\"Binary\",\n \"Omega\",\"Alpha\",\"Beta\",\"Gamma\",\"Sigma\",\"Theta\",\"Lambda\",\"Kappa\",\n \"Zeta\",\"Epsilon\",\"Omni\",\"Dual\",\"Triple\",\"Nexus\",\"Vertex\",\"Vector\",\n \"Matrix\",\"Cipher\",\"Enigma\",\"Phantom\",\"Mirage\",\"Dream\",\"Vision\",\"Oracle\",\n \"Prophet\",\"Sage\",\"Shaman\",\"Druid\",\"Artisan\",\"Maestro\",\"Virtuoso\",\"Savant\",\n \"Prodigy\",\"Maven\",\"Guru\",\"Mentor\",\"Guide\",\"Scout\",\"Pioneer\",\"Voyager\",\n \"Wanderer\",\"Nomad\",\"Rover\",\"Ranger\",\"Sentinel\",\"Guardian\",\"Keeper\",\"Warden\",\n \"Champion\",\"Vanguard\",\"Herald\",\"Emissary\",\"Envoy\",\"Ambassador\",\"Steward\",\"Curator\",\n \"Patron\",\"Benefactor\",\"Founder\",\"Architect\",\"Builder\",\"Maker\",\"Crafter\",\"Weaver\",\n \"Forger\",\"Smith\",\"Wright\",\"Mason\",\"Brewer\",\"Baker\",\"Tanner\",\"Dyer\",\n \"Scribe\",\"Bard\",\"Minstrel\",\"Troubadour\",\"Storyteller\",\"Chronicler\",\"Lorekeeper\",\"Archivist\",\n \"Tranquil\",\"Placid\",\"Hushed\",\"Muffled\",\"Soft\",\"Subtle\",\"Faint\",\"Dim\",\n \"Pale\",\"Warm\",\"Cool\",\"Taut\",\"Tense\",\"Cozy\",\"Homey\",\"Pastoral\",\n \"Sylvan\",\"Bucolic\",\"Idyllic\",\"Quaint\",\"Charming\",\"Lovely\",\"Pretty\",\"Dapper\",\n \"Natty\",\"Chic\",\"Posh\",\"Classy\",\"Fancy\",\"Ornate\",\"Lavish\",\"Opulent\",\n \"Majestic\",\"Dignified\",\"August\",\"Solemn\",\"Sober\",\"Heartfelt\",\"Genuine\",\"Authentic\",\n \"Novel\",\"Singular\",\"Distinct\",\"Chosen\",\"Select\",\"Premium\",\"Deluxe\",\"Superior\",\n \"Exquisite\",\"Superb\",\"Splendid\",\"Glorious\",\"Sublime\",\"Resonant\",\"Harmonic\",\"Melodic\",\n \"Lyrical\",\"Poetic\",\"Seamless\",\"Effortless\",\"Organic\",\"Primal\",\"Devoted\",\"Dedicated\",\n \"Committed\",\"Focused\",\"Determined\",\"Resolute\",\"Steadfast\",\"Unwavering\",\"Constant\",\"Faithful\",\n \"Reliable\",\"Dependable\",\"Trusty\",\"Anchored\",\"Moored\",\"Sheltered\",\"Protected\",\"Guarded\",\n \"Shielded\",\"Fortified\",\"Reinforced\",\"Braced\",\"Bolstered\",\"Supported\",\"Upheld\",\"Sustained\",\n \"Preserved\",\"Conserved\",\"Stored\",\"Vaulted\",\"Locked\",\"Secured\",\"Fastened\",\"Linked\",\n \"Joined\",\"Connected\",\"Paired\",\"Matched\",\"Balanced\",\"Aligned\",\"Centered\",\"Aimed\",\n \"Directed\",\"Guided\",\"Steered\",\"Piloted\",\"Navigated\",\"Charted\",\"Mapped\",\"Tracked\",\n \"Pursued\",\"Discovered\",\"Unveiled\",\"Displayed\",\"Presented\",\"Granted\",\"Bestowed\",\"Conferred\",\n \"Sapient\",\"Sentient\",\"Radiant\",\"Fertile\",\"Abundant\",\"Bountiful\",\"Plentiful\",\"Prolific\",\n \"Thriving\",\"Flourishing\",\"Blooming\",\"Budding\",\"Growing\",\"Expanding\",\"Advancing\",\"Progressing\",\n \"Evolving\",\"Maturing\",\"Ripening\",\"Developing\",\"Emerging\",\"Nascent\",\"Incipient\",\"Dawning\",\n \"Unfolding\",\"Awakening\",\"Stirring\",\"Kindling\",\"Igniting\",\"Sparking\",\"Triggering\",\"Launching\",\n \"Initiating\",\"Pioneering\",\"Trailblazing\",\"Groundbreaking\",\"Innovative\",\"Inventive\",\"Creative\",\"Imaginative\",\n \"Inspired\",\"Visionary\",\"Prophetic\",\"Prescient\",\"Insightful\",\"Perceptive\",\"Observant\",\"Watchful\",\n \"Vigilant\",\"Attentive\",\"Thoughtful\",\"Considerate\",\"Caring\",\"Nurturing\",\"Fostering\",\"Cultivating\",\n \"Tending\",\"Pruning\",\"Trimming\",\"Shaping\",\"Forming\",\"Molding\",\"Fashioning\",\"Designing\",\n \"Drafting\",\"Sketching\",\"Drawing\",\"Painting\",\"Coloring\",\"Tinting\",\"Shading\",\"Blending\",\n \"Mixing\",\"Merging\",\"Combining\",\"Uniting\",\"Fusing\",\"Melding\",\"Weaving\",\"Knitting\",\n \"Stitching\",\"Sewing\",\"Quilting\",\"Patching\",\"Mending\",\"Healing\",\"Restoring\",\"Renewing\",\n \"Reviving\",\"Refreshing\",\"Rejuvenating\",\"Invigorating\",\"Energizing\",\"Empowering\",\"Strengthening\",\"Fortifying\",\n \"Hardening\",\"Tempering\",\"Seasoning\",\"Curing\",\"Aging\",\"Mellowing\",\"Softening\",\"Smoothing\",\n \"Leveling\",\"Planing\",\"Sanding\",\"Buffing\",\"Burnishing\",\"Radiating\",\"Beaming\",\"Lighting\",\n \"Illuminating\",\"Brightening\",\"Clarifying\",\"Purifying\",\"Filtering\",\"Distilling\",\"Condensing\",\"Concentrating\",\n \"Focusing\",\"Directing\",\"Channeling\",\"Terraced\",\"Ascending\",\"Streaming\",\"Umber\",\"Careful\",\n \"Perfecting\",\"Glittering\",\"Twinkling\",\"Verdure\",\"Auroral\",\"Boreal\",\"Austral\",\"Temperate\",\n]);\n\n// ─── Nouns (1000) ───────────────────────────────────────────────\nexport const NOUNS: readonly string[] = Object.freeze([\n \"Falcon\",\"Hawk\",\"Eagle\",\"Owl\",\"Heron\",\"Crane\",\"Swan\",\"Dove\",\n \"Raven\",\"Finch\",\"Robin\",\"Wren\",\"Lark\",\"Jay\",\"Ibis\",\"Kite\",\n \"Osprey\",\"Condor\",\"Pelican\",\"Stork\",\"Sparrow\",\"Tern\",\"Puffin\",\"Parrot\",\n \"Toucan\",\"Kingfisher\",\"Flamingo\",\"Quail\",\"Pheasant\",\"Grouse\",\"Oriole\",\"Warbler\",\n \"Thrush\",\"Starling\",\"Magpie\",\"Swallow\",\"Martin\",\"Plover\",\"Curlew\",\"Sandpiper\",\n \"Wolf\",\"Fox\",\"Bear\",\"Stag\",\"Elk\",\"Moose\",\"Bison\",\"Lynx\",\n \"Cougar\",\"Panther\",\"Jaguar\",\"Leopard\",\"Tiger\",\"Lion\",\"Cheetah\",\"Gazelle\",\n \"Antelope\",\"Impala\",\"Zebra\",\"Giraffe\",\"Rhino\",\"Hippo\",\"Otter\",\"Beaver\",\n \"Badger\",\"Marten\",\"Ferret\",\"Mink\",\"Hare\",\"Rabbit\",\"Squirrel\",\"Chipmunk\",\n \"Porcupine\",\"Hedgehog\",\"Armadillo\",\"Pangolin\",\"Lemur\",\"Gibbon\",\"Tamarin\",\"Capybara\",\n \"Chinchilla\",\"Ocelot\",\"Margay\",\"Coati\",\"Kinkajou\",\"Tapir\",\"Okapi\",\"Kudu\",\n \"Oryx\",\"Chamois\",\"Orca\",\"Dolphin\",\"Whale\",\"Narwhal\",\"Walrus\",\"Seal\",\n \"Manatee\",\"Turtle\",\"Iguana\",\"Gecko\",\"Chameleon\",\"Newt\",\"Salamander\",\"Crab\",\n \"Lobster\",\"Seahorse\",\"Starfish\",\"Octopus\",\"Squid\",\"Jellyfish\",\"Stingray\",\"Barracuda\",\n \"Marlin\",\"Sailfish\",\"Trout\",\"Salmon\",\"Mantis\",\"Cricket\",\"Firefly\",\"Dragonfly\",\n \"Cedar\",\"Oak\",\"Pine\",\"Birch\",\"Maple\",\"Elm\",\"Ash\",\"Willow\",\n \"Cypress\",\"Redwood\",\"Sequoia\",\"Spruce\",\"Fir\",\"Larch\",\"Yew\",\"Beech\",\n \"Alder\",\"Poplar\",\"Aspen\",\"Walnut\",\"Hickory\",\"Teak\",\"Mahogany\",\"Ebony\",\n \"Bamboo\",\"Palm\",\"Acacia\",\"Baobab\",\"Banyan\",\"Olive\",\"Laurel\",\"Magnolia\",\n \"Lotus\",\"Orchid\",\"Iris\",\"Lily\",\"Rose\",\"Tulip\",\"Daisy\",\"Aster\",\n \"Dahlia\",\"Peony\",\"Jasmine\",\"Violet\",\"Clover\",\"Fern\",\"Moss\",\"Lichen\",\n \"Ivy\",\"Vine\",\"Reed\",\"Sage\",\"Basil\",\"Thyme\",\"Mint\",\"Dill\",\n \"Fennel\",\"Sorrel\",\"Yarrow\",\"Thistle\",\"Heather\",\"Bluebell\",\"Primrose\",\"Marigold\",\n \"Sunflower\",\"Zinnia\",\"Pansy\",\"Poppy\",\"Crocus\",\"Snowdrop\",\"Foxglove\",\"Honeysuckle\",\n \"Wisteria\",\"Hibiscus\",\"Plumeria\",\"Gardenia\",\"Camellia\",\"Begonia\",\"Azalea\",\"Oleander\",\n \"Canyon\",\"Ridge\",\"Peak\",\"Summit\",\"Cliff\",\"Bluff\",\"Mesa\",\"Butte\",\n \"Plateau\",\"Terrace\",\"Valley\",\"Basin\",\"Gorge\",\"Ravine\",\"Gulch\",\"Fjord\",\n \"Inlet\",\"Bay\",\"Cove\",\"Harbor\",\"Lagoon\",\"Reef\",\"Atoll\",\"Isle\",\n \"Peninsula\",\"Cape\",\"Shoal\",\"Bank\",\"Ledge\",\"Shelf\",\"Dune\",\"Desert\",\n \"Steppe\",\"Tundra\",\"Glacier\",\"Moraine\",\"Geyser\",\"Oasis\",\"Delta\",\"Estuary\",\n \"Marsh\",\"Bog\",\"Swamp\",\"Fen\",\"Moor\",\"Heath\",\"Meadow\",\"Prairie\",\n \"Savanna\",\"Glen\",\"Dale\",\"Dell\",\"Vale\",\"Hollow\",\"Grove\",\"Copse\",\n \"Thicket\",\"Taiga\",\"Mangrove\",\"Wetland\",\"Cascade\",\"Brook\",\"Creek\",\"Stream\",\n \"River\",\"Lake\",\"Pond\",\"Pool\",\"Tarn\",\"Loch\",\"Falls\",\"Fountain\",\n \"Grotto\",\"Cavern\",\"Cave\",\"Tunnel\",\"Arch\",\"Bridge\",\"Ford\",\"Pass\",\n \"Trail\",\"Path\",\"Route\",\"Caldera\",\"Crater\",\"Vent\",\"Spire\",\"Needle\",\n \"Dome\",\"Gateway\",\"Portal\",\"Threshold\",\"Verge\",\"Brink\",\"Edge\",\"Rim\",\n \"Brow\",\"Crest\",\"Promontory\",\"Headland\",\"Spit\",\"Tombolo\",\"Isthmus\",\"Strait\",\n \"Narrows\",\"Sound\",\"Bight\",\"Reach\",\"Stretch\",\"Expanse\",\"Clearing\",\"Glade\",\n \"Knoll\",\"Hillock\",\"Mound\",\"Tor\",\"Crag\",\"Scarp\",\"Escarpment\",\"Comet\",\n \"Meteor\",\"Asteroid\",\"Nebula\",\"Galaxy\",\"Quasar\",\"Pulsar\",\"Star\",\"Sun\",\n \"Moon\",\"Planet\",\"Orbit\",\"Eclipse\",\"Corona\",\"Flare\",\"Nova\",\"Cosmos\",\n \"Void\",\"Abyss\",\"Ether\",\"Zenith\",\"Nadir\",\"Horizon\",\"Aurora\",\"Meridian\",\n \"Equinox\",\"Solstice\",\"Phase\",\"Cycle\",\"Epoch\",\"Eon\",\"Era\",\"Dawn\",\n \"Dusk\",\"Twilight\",\"Night\",\"Noon\",\"Morning\",\"Evening\",\"Sunset\",\"Sunrise\",\n \"Daybreak\",\"Nightfall\",\"Starlight\",\"Moonbeam\",\"Sunray\",\"Skyline\",\"Firmament\",\"Canopy\",\n \"Infinity\",\"Vega\",\"Rigel\",\"Altair\",\"Deneb\",\"Sirius\",\"Polaris\",\"Arcturus\",\n \"Antares\",\"Lyra\",\"Orion\",\"Draco\",\"Phoenix\",\"Hydra\",\"Corvus\",\"Cygnus\",\n \"Aquila\",\"Andromeda\",\"Pegasus\",\"Perseus\",\"Gemini\",\"Centauri\",\"Cassiopeia\",\"Scorpius\",\n \"Sagittarius\",\"Capella\",\"Procyon\",\"Aldebaran\",\"Betelgeuse\",\"Spica\",\"Prism\",\"Quill\",\n \"Forge\",\"Anvil\",\"Helm\",\"Rune\",\"Atlas\",\"Compass\",\"Anchor\",\"Beacon\",\n \"Bell\",\"Bugle\",\"Drum\",\"Flute\",\"Harp\",\"Horn\",\"Lyre\",\"Pipe\",\n \"Gong\",\"Chime\",\"Cymbal\",\"Fiddle\",\"Trumpet\",\"Viola\",\"Cello\",\"Oboe\",\n \"Lute\",\"Mandolin\",\"Zither\",\"Sitar\",\"Banjo\",\"Lantern\",\"Torch\",\"Candle\",\n \"Lamp\",\"Globe\",\"Lens\",\"Scope\",\"Mirror\",\"Frame\",\"Easel\",\"Palette\",\n \"Brush\",\"Chisel\",\"Mallet\",\"Hammer\",\"Tongs\",\"Ladle\",\"Kettle\",\"Crucible\",\n \"Mortar\",\"Pestle\",\"Flask\",\"Vial\",\"Beaker\",\"Alembic\",\"Furnace\",\"Kiln\",\n \"Loom\",\"Shuttle\",\"Bobbin\",\"Spool\",\"Thimble\",\"Pin\",\"Clasp\",\"Buckle\",\n \"Brooch\",\"Pendant\",\"Amulet\",\"Talisman\",\"Charm\",\"Token\",\"Coin\",\"Medal\",\n \"Badge\",\"Shield\",\"Banner\",\"Flag\",\"Pennant\",\"Sigil\",\"Stamp\",\"Emblem\",\n \"Totem\",\"Icon\",\"Statue\",\"Obelisk\",\"Monolith\",\"Cairn\",\"Tablet\",\"Scroll\",\n \"Tome\",\"Codex\",\"Ledger\",\"Journal\",\"Chronicle\",\"Almanac\",\"Manual\",\"Gazette\",\n \"Folio\",\"Pamphlet\",\"Broadsheet\",\"Parchment\",\"Vellum\",\"Papyrus\",\"Inkwell\",\"Quiver\",\n \"Satchel\",\"Pouch\",\"Casket\",\"Coffer\",\"Chest\",\"Crate\",\"Barrel\",\"Quartz\",\n \"Opal\",\"Onyx\",\"Agate\",\"Garnet\",\"Topaz\",\"Beryl\",\"Zircon\",\"Spinel\",\n \"Peridot\",\"Jasper\",\"Amethyst\",\"Citrine\",\"Tourmaline\",\"Malachite\",\"Azurite\",\"Lapis\",\n \"Pyrite\",\"Galena\",\"Mica\",\"Talc\",\"Gypsum\",\"Calcite\",\"Dolomite\",\"Basalt\",\n \"Granite\",\"Marble\",\"Slate\",\"Shale\",\"Sandstone\",\"Limestone\",\"Obsidian\",\"Pumice\",\n \"Tuff\",\"Chert\",\"Flint\",\"Chalcedony\",\"Carnelian\",\"Sardonyx\",\"Moonstone\",\"Sunstone\",\n \"Labradorite\",\"Tanzanite\",\"Kunzite\",\"Rhodonite\",\"Sodalite\",\"Chrysocolla\",\"Aventurine\",\"Fluorite\",\n \"Seraphinite\",\"Charoite\",\"Sugilite\",\"Larimar\",\"Prehnite\",\"Danburite\",\"Scolecite\",\"Celestite\",\n \"Amazonite\",\"Howlite\",\"Lepidolite\",\"Storm\",\"Thunder\",\"Lightning\",\"Breeze\",\"Gale\",\n \"Squall\",\"Typhoon\",\"Cyclone\",\"Monsoon\",\"Tempest\",\"Zephyr\",\"Chinook\",\"Mistral\",\n \"Sirocco\",\"Foehn\",\"Bora\",\"Rain\",\"Drizzle\",\"Shower\",\"Downpour\",\"Deluge\",\n \"Flood\",\"Torrent\",\"Current\",\"Tide\",\"Wave\",\"Swell\",\"Surf\",\"Spray\",\n \"Foam\",\"Mist\",\"Fog\",\"Haze\",\"Dew\",\"Frost\",\"Ice\",\"Snow\",\n \"Sleet\",\"Hail\",\"Rime\",\"Thaw\",\"Flow\",\"Drift\",\"Eddy\",\"Vortex\",\n \"Whirl\",\"Spiral\",\"Funnel\",\"Column\",\"Plume\",\"Wisp\",\"Streak\",\"Band\",\n \"Front\",\"Trough\",\"Rainbow\",\"Halo\",\"Mirage\",\"Shimmer\",\"Glimmer\",\"Tower\",\n \"Turret\",\"Bastion\",\"Citadel\",\"Fortress\",\"Castle\",\"Palace\",\"Manor\",\"Lodge\",\n \"Cabin\",\"Cottage\",\"Villa\",\"Ranch\",\"Barn\",\"Silo\",\"Mill\",\"Foundry\",\n \"Workshop\",\"Studio\",\"Gallery\",\"Museum\",\"Library\",\"Archive\",\"Treasury\",\"Vault\",\n \"Chamber\",\"Hall\",\"Court\",\"Plaza\",\"Garden\",\"Balcony\",\"Porch\",\"Arcade\",\n \"Colonnade\",\"Pergola\",\"Pavilion\",\"Gazebo\",\"Kiosk\",\"Chapel\",\"Temple\",\"Shrine\",\n \"Monastery\",\"Abbey\",\"Cathedral\",\"Basilica\",\"Minaret\",\"Pagoda\",\"Stupa\",\"Pyramid\",\n \"Arena\",\"Stadium\",\"Forum\",\"Market\",\"Bazaar\",\"Emporium\",\"Depot\",\"Station\",\n \"Terminal\",\"Dock\",\"Wharf\",\"Pier\",\"Jetty\",\"Quay\",\"Marina\",\"Lighthouse\",\n \"Watchtower\",\"Outpost\",\"Camp\",\"Shelter\",\"Refuge\",\"Sanctuary\",\"Haven\",\"Retreat\",\n \"Nest\",\"Aerie\",\"Burrow\",\"Den\",\"Lair\",\"Roost\",\"Perch\",\"Bower\",\n \"Arbor\",\"Alcove\",\"Sextant\",\"Astrolabe\",\"Sundial\",\"Hourglass\",\"Pendulum\",\"Gyroscope\",\n \"Turbine\",\"Dynamo\",\"Generator\",\"Piston\",\"Valve\",\"Lever\",\"Pulley\",\"Winch\",\n \"Derrick\",\"Gantry\",\"Scaffold\",\"Trellis\",\"Lattice\",\"Grid\",\"Net\",\"Web\",\n \"Axle\",\"Gear\",\"Cog\",\"Sprocket\",\"Chain\",\"Link\",\"Cable\",\"Wire\",\n \"Thread\",\"Cord\",\"Rope\",\"Rigging\",\"Mast\",\"Boom\",\"Spar\",\"Keel\",\n \"Hull\",\"Rudder\",\"Tiller\",\"Wheel\",\"Chart\",\"Map\",\"Gauge\",\"Meter\",\n \"Scale\",\"Caliper\",\"Ruler\",\"Level\",\"Plumb\",\"Protractor\",\"Template\",\"Stencil\",\n \"Mold\",\"Die\",\"Lathe\",\"Bellows\",\"Retort\",\"Condenser\",\"Centrifuge\",\"Spectrometer\",\n \"Oscilloscope\",\"Theodolite\",\"Transit\",\"Sounding\",\"Probe\",\"Sensor\",\"Relay\",\"Switch\",\n \"Circuit\",\"Diode\",\"Quest\",\"Saga\",\"Legend\",\"Myth\",\"Fable\",\"Ballad\",\n \"Anthem\",\"Hymn\",\"Ode\",\"Sonnet\",\"Verse\",\"Stanza\",\"Canto\",\"Chorus\",\n \"Refrain\",\"Motif\",\"Theme\",\"Arc\",\"Prologue\",\"Epilogue\",\"Prelude\",\"Overture\",\n \"Finale\",\"Crescendo\",\"Cadence\",\"Tempo\",\"Rhythm\",\"Pulse\",\"Beat\",\"Tone\",\n \"Note\",\"Chord\",\"Harmony\",\"Melody\",\"Lyric\",\"Opus\",\"Suite\",\"Etude\",\n \"Fugue\",\"Canon\",\"March\",\"Waltz\",\"Rondo\",\"Aria\",\"Duet\",\"Trio\",\n \"Quartet\",\"Ensemble\",\"Guild\",\"League\",\"Order\",\"Council\",\"Assembly\",\"Conclave\",\n \"Synod\",\"Quorum\",\"Cohort\",\"Legion\",\"Brigade\",\"Battalion\",\"Regiment\",\"Division\",\n \"Corps\",\"Fleet\",\"Squadron\",\"Patrol\",\"Convoy\",\"Caravan\",\"Expedition\",\"Voyage\",\n \"Journey\",\"Trek\",\"Odyssey\",\"Passage\",\"Crossing\",\"Venture\",\"Enterprise\",\"Mission\",\n \"Campaign\",\"Crusade\",\"Pilgrimage\",\"Safari\",\"Sortie\",\"Foray\",\"Rally\",\"Charge\",\n \"Advance\",\"Concord\",\"Ember\",\"Blaze\",\"Inferno\",\"Pyre\",\"Spark\",\"Cinder\",\n \"Smoke\",\"Vapor\",\"Steam\",\"Nimbus\",\"Cumulus\",\"Cirrus\",\"Stratus\",\"Billow\",\n \"Puff\",\"Wake\",\"Ripple\",\"Surge\",\"Ebb\",\"Flux\",\"Gush\",\"Rush\",\n \"Spring\",\"Well\",\"Font\",\"Source\",\"Origin\",\"Root\",\"Seed\",\"Sprout\",\n \"Bud\",\"Bloom\",\"Petal\",\"Leaf\",\"Branch\",\"Limb\",\"Trunk\",\"Bark\",\n \"Grain\",\"Fiber\",\"Pulp\",\"Core\",\"Sap\",\"Resin\",\"Nectar\",\"Pollen\",\n \"Spore\",\"Frond\",\"Tendril\",\"Runner\",\"Shoot\",\"Stalk\",\"Stem\",\"Thorn\",\n \"Burr\",\"Cone\",\"Acorn\",\"Pinecone\",\"Nutshell\",\"Keystone\",\"Capstone\",\"Milestone\",\n \"Cornerstone\",\"Foundation\",\"Bedrock\",\"Pillar\",\"Buttress\",\"Parapet\",\"Battlement\",\"Barbican\",\n \"Gatehouse\",\"Drawbridge\",\"Portcullis\",\"Moat\",\"Stockade\",\"Palisade\",\"Bulwark\",\"Levee\",\n \"Embankment\",\"Causeway\",\"Aqueduct\",\"Viaduct\",\"Trestle\",\"Span\",\"Lintel\",\"Plinth\",\n \"Pedestal\",\"Dais\",\"Rostrum\",\"Podium\",\"Stage\",\"Platform\",\"Deck\",\"Landing\",\n \"Berth\",\"Channel\",\"Lock\",\"Weir\",\"Dam\",\"Spillway\",\"Flume\",\"Chute\",\n \"Sluice\",\"Nozzle\",\"Spout\",\"Faucet\",\"Cistern\",\"Wellspring\",\"Headwater\",\"Watershed\",\n \"Alluvium\",\"Loam\",\"Humus\",\"Peat\",\"Marl\",\"Silt\",\"Writ\",\"Clamp\",\n \"Eyepiece\",\"Traverse\",\"Stride\",\"Parley\",\"Char\",\"Trace\",\"Confluence\",\"Rampart\",\n]);\n\n// ─── Blocked Combinations ──────────────────────────────────────\n// Adjective+Noun pairs that form offensive or inappropriate words\n// when concatenated. Checked at derivation time; PRNG advances\n// deterministically to produce a clean replacement.\nexport const BLOCKED_COMBOS: ReadonlySet<string> = Object.freeze(\n new Set<string>([\n // Add any discovered offensive adj+noun combinations here.\n // Format: \"AdjectiveNoun\" (PascalCase, concatenated)\n ]),\n);\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Name Derivation Engine\n// SHA-256(\"solnames-v1:\" + wallet) → PRNG → adjective + noun\n// ═══════════════════════════════════════════════════════════════\n\nimport { sha256, sha256Hex } from \"./sha256\";\nimport { ADJECTIVES, NOUNS, BLOCKED_COMBOS, SOLNAMES_VERSION } from \"./constants\";\nimport type { NameFormat, SolNameIdentity } from \"./constants\";\n\nfunction mulberry32(seed: number): () => number {\n let a = seed | 0;\n return () => {\n a = (a + 0x6d2b79f5) | 0;\n let t = Math.imul(a ^ (a >>> 15), 1 | a);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nconst DOMAIN = `solnames-${SOLNAMES_VERSION}:`;\n\n/** Options for customizing name derivation. */\nexport interface DeriveOptions {\n /** Custom adjective word list (default: built-in 1000 adjectives) */\n adjectives?: readonly string[];\n /** Custom noun word list (default: built-in 1000 nouns) */\n nouns?: readonly string[];\n /** Custom blocked adjective+noun combinations (default: built-in set) */\n blockedCombos?: Set<string>;\n /** Custom domain prefix for SHA-256 hashing (default: \"solnames-v1\") */\n domain?: string;\n}\n\n/**\n * Derive a deterministic name from a Solana wallet address.\n *\n * @param wallet Base58 wallet address\n * @param format Name format (default: \"display\")\n * @param options Custom word lists, domain, or blocked combos\n * @returns Formatted name string\n */\nexport function deriveName(\n wallet: string,\n format: NameFormat = \"display\",\n options?: DeriveOptions,\n): string {\n const id = deriveIdentity(wallet, options);\n switch (format) {\n case \"short\":\n return id.short;\n case \"display\":\n return id.name;\n case \"tag\":\n return id.tag;\n case \"full\":\n return id.full;\n }\n}\n\n/**\n * Derive the full identity bundle for a wallet address.\n * Returns all four name formats plus component parts.\n */\nexport function deriveIdentity(\n wallet: string,\n options?: DeriveOptions,\n): SolNameIdentity {\n const adjectives = options?.adjectives ?? ADJECTIVES;\n const nouns = options?.nouns ?? NOUNS;\n const blocked = options?.blockedCombos ?? BLOCKED_COMBOS;\n const domain = options?.domain ? `${options.domain}:` : DOMAIN;\n\n const hash = sha256(domain + wallet);\n const hex = sha256Hex(domain + wallet);\n\n // Seed PRNG from first 4 bytes (big-endian)\n const seed =\n ((hash[0] << 24) | (hash[1] << 16) | (hash[2] << 8) | hash[3]) >>> 0;\n const rng = mulberry32(seed);\n\n // Pick first adj+noun pair, retrying if blocked\n let adj1 = adjectives[Math.floor(rng() * adjectives.length)];\n let noun1 = nouns[Math.floor(rng() * nouns.length)];\n while (blocked.has(adj1 + noun1)) {\n adj1 = adjectives[Math.floor(rng() * adjectives.length)];\n noun1 = nouns[Math.floor(rng() * nouns.length)];\n }\n\n // Pick second adj+noun pair for full format\n const adj2 = adjectives[Math.floor(rng() * adjectives.length)];\n const noun2 = nouns[Math.floor(rng() * nouns.length)];\n\n // Discriminator from bytes 8-9 (4 hex chars)\n const discriminator = hex.slice(16, 20);\n\n return {\n short: adj1,\n name: adj1 + noun1,\n tag: adj1 + noun1 + \"#\" + discriminator,\n full: adj1 + noun1 + \"-\" + adj2 + noun2,\n adjective: adj1,\n noun: noun1,\n hash: hex,\n discriminator,\n };\n}\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Name Validation & Parsing\n// ═══════════════════════════════════════════════════════════════\n\nimport { ADJECTIVES, NOUNS } from \"./constants\";\n\nconst adjSet = new Set(ADJECTIVES);\nconst nounSet = new Set(NOUNS);\n\nexport interface ParsedSolName {\n adjective: string;\n noun: string;\n discriminator?: string;\n}\n\n/**\n * Check if a string is a valid SolName (display, tag, or full format).\n */\nexport function isValidSolName(name: string): boolean {\n return parseSolName(name) !== null;\n}\n\n/**\n * Parse a SolName string into its component parts.\n * Supports display (\"SunnyIcon\"), tag (\"SunnyIcon#2f95\"),\n * and full (\"SunnyIcon-InfiniteOre\") formats.\n *\n * Returns null if the name doesn't match any valid format.\n */\nexport function parseSolName(\n name: string,\n): ParsedSolName | null {\n // Tag format: AdjNoun#xxxx\n const tagMatch = name.match(/^([A-Z][a-z]+)([A-Z][a-z]+)#([0-9a-f]{4})$/);\n if (tagMatch) {\n const [, adj, noun, disc] = tagMatch;\n if (adjSet.has(adj) && nounSet.has(noun)) {\n return { adjective: adj, noun, discriminator: disc };\n }\n return null;\n }\n\n // Full format: AdjNoun-AdjNoun\n const fullMatch = name.match(\n /^([A-Z][a-z]+)([A-Z][a-z]+)-([A-Z][a-z]+)([A-Z][a-z]+)$/,\n );\n if (fullMatch) {\n const [, adj1, noun1] = fullMatch;\n if (adjSet.has(adj1) && nounSet.has(noun1)) {\n return { adjective: adj1, noun: noun1 };\n }\n return null;\n }\n\n // Display format: AdjNoun\n const displayMatch = name.match(/^([A-Z][a-z]+)([A-Z][a-z]+)$/);\n if (displayMatch) {\n const [, adj, noun] = displayMatch;\n if (adjSet.has(adj) && nounSet.has(noun)) {\n return { adjective: adj, noun };\n }\n return null;\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../src/names/sha256.ts","../src/names/constants.ts","../src/names/derive.ts","../src/names/validate.ts"],"names":[],"mappings":";AAKA,IAAM,CAAA,GAAuB;AAAA,EAC3B,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,SAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,SAAA;AAAA,EAAY,SAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,SAAA;AAAA,EAAY,SAAA;AAAA,EACpC,SAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,SAAA;AAAA,EAAY,SAAA;AAAA,EACpC,SAAA;AAAA,EAAY,SAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,SAAA;AAAA,EACpC,SAAA;AAAA,EAAY,SAAA;AAAA,EAAY,SAAA;AAAA,EAAY,SAAA;AAAA,EACpC,SAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EACpC,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY;AACtC,CAAA;AAEA,SAAS,IAAA,CAAK,GAAW,CAAA,EAAmB;AAC1C,EAAA,OAAQ,CAAA,KAAM,CAAA,GAAM,CAAA,IAAM,EAAA,GAAK,CAAA;AACjC;AAEO,SAAS,OAAO,KAAA,EAA2B;AAEhD,EAAA,MAAM,OAAA,GAAU,IAAI,WAAA,EAAY;AAChC,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA;AAChC,EAAA,MAAM,MAAA,GAAS,IAAI,MAAA,GAAS,CAAA;AAG5B,EAAA,MAAM,MAAA,GAAS,EAAA,GAAA,CAAO,GAAA,CAAI,MAAA,GAAS,CAAA,IAAK,EAAA;AACxC,EAAA,MAAM,WAAW,GAAA,CAAI,MAAA,GAAS,KAAK,MAAA,KAAW,EAAA,GAAK,IAAI,MAAA,CAAA,GAAU,CAAA;AACjE,EAAA,MAAM,GAAA,GAAM,IAAI,UAAA,CAAW,QAAQ,CAAA;AACnC,EAAA,GAAA,CAAI,IAAI,GAAG,CAAA;AACX,EAAA,GAAA,CAAI,GAAA,CAAI,MAAM,CAAA,GAAI,GAAA;AAElB,EAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA;AAClC,EAAA,EAAA,CAAG,SAAA,CAAU,QAAA,GAAW,CAAA,EAAG,MAAA,EAAQ,KAAK,CAAA;AAGxC,EAAA,IAAI,KAAK,UAAA,EAAY,EAAA,GAAK,UAAA,EAAY,EAAA,GAAK,YAAY,EAAA,GAAK,UAAA;AAC5D,EAAA,IAAI,KAAK,UAAA,EAAY,EAAA,GAAK,UAAA,EAAY,EAAA,GAAK,WAAY,EAAA,GAAK,UAAA;AAE5D,EAAA,MAAM,CAAA,GAAI,IAAI,UAAA,CAAW,EAAE,CAAA;AAG3B,EAAA,KAAA,IAAS,MAAA,GAAS,CAAA,EAAG,MAAA,GAAS,QAAA,EAAU,UAAU,EAAA,EAAI;AACpD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,MAAA,CAAA,CAAE,CAAC,CAAA,GAAI,EAAA,CAAG,SAAS,MAAA,GAAS,CAAA,GAAI,GAAG,KAAK,CAAA;AAAA,IAC1C;AACA,IAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC5B,MAAA,MAAM,KAAK,IAAA,CAAK,CAAA,EAAG,EAAE,CAAA,GAAI,EAAE,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAA,CAAE,IAAI,EAAE,CAAC,IAAK,CAAA,CAAE,CAAA,GAAI,EAAE,CAAA,KAAM,CAAA;AACrE,MAAA,MAAM,KAAK,IAAA,CAAK,EAAA,EAAI,EAAE,CAAA,GAAI,CAAC,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAA,CAAE,IAAI,CAAC,CAAC,IAAK,CAAA,CAAE,CAAA,GAAI,CAAC,CAAA,KAAM,EAAA;AACnE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAK,CAAA,CAAE,CAAA,GAAI,EAAE,CAAA,GAAI,EAAA,GAAK,CAAA,CAAE,CAAA,GAAI,CAAC,CAAA,GAAI,EAAA,GAAM,CAAA;AAAA,IAC5C;AAEA,IAAA,IAAI,IAAI,EAAA,EAAI,CAAA,GAAI,EAAA,EAAI,CAAA,GAAI,IAAI,CAAA,GAAI,EAAA;AAChC,IAAA,IAAI,IAAI,EAAA,EAAI,CAAA,GAAI,EAAA,EAAI,CAAA,GAAI,IAAI,CAAA,GAAI,EAAA;AAEhC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,MAAA,MAAM,EAAA,GAAK,IAAA,CAAK,CAAA,EAAG,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAC,CAAA;AAChD,MAAA,MAAM,EAAA,GAAM,CAAA,GAAI,CAAA,GAAM,CAAC,CAAA,GAAI,CAAA;AAC3B,MAAA,MAAM,KAAA,GAAS,IAAI,EAAA,GAAK,EAAA,GAAK,EAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAK,CAAA;AAC5C,MAAA,MAAM,EAAA,GAAK,IAAA,CAAK,CAAA,EAAG,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAC,CAAA,GAAI,IAAA,CAAK,EAAA,EAAI,CAAC,CAAA;AAChD,MAAA,MAAM,GAAA,GAAO,CAAA,GAAI,CAAA,GAAM,CAAA,GAAI,IAAM,CAAA,GAAI,CAAA;AACrC,MAAA,MAAM,KAAA,GAAS,KAAK,GAAA,GAAO,CAAA;AAE3B,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAK,IAAI,KAAA,GAAS,CAAA;AACvC,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAI,CAAA;AAAG,MAAA,CAAA,GAAK,QAAQ,KAAA,GAAS,CAAA;AAAA,IAC7C;AAEA,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AAAG,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AACnC,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AAAG,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AACnC,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AAAG,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AACnC,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AAAG,IAAA,EAAA,GAAM,KAAK,CAAA,GAAK,CAAA;AAAA,EACrC;AAEA,EAAA,MAAM,GAAA,GAAM,IAAI,UAAA,CAAW,EAAE,CAAA;AAC7B,EAAA,MAAM,OAAA,GAAU,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA;AACvC,EAAA,OAAA,CAAQ,SAAA,CAAU,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA;AAAI,EAAA,OAAA,CAAQ,SAAA,CAAU,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA;AAChE,EAAA,OAAA,CAAQ,SAAA,CAAU,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA;AAAI,EAAA,OAAA,CAAQ,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AACjE,EAAA,OAAA,CAAQ,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AAAG,EAAA,OAAA,CAAQ,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AACjE,EAAA,OAAA,CAAQ,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AAAG,EAAA,OAAA,CAAQ,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AACjE,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,CAAA,CAC5B,IAAI,CAAC,CAAA,KAAM,EAAE,QAAA,CAAS,EAAE,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAC1C,KAAK,EAAE,CAAA;AACZ;;;ACxFO,IAAM,gBAAA,GAAmB;AAgBzB,IAAM,UAAA,GAAgC,OAAO,MAAA,CAAO;AAAA,EACzD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EACxD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAChE,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAChE,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAC/D,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC3D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAChE,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,MAAA;AAAA,EAC5D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EACxD,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAClE,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC1D,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,WAAA;AAAA,EACjE,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,OAAA;AAAA,EACjE,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EACpD,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EACtE,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAClF,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,MAAA;AAAA,EAAO,SAAA;AAAA,EACvE,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,OAAA;AAAA,EAClD,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EACnE,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EACxD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAC5D,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EACjE,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAC3D,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAChE,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,OAAA;AAAA,EACnE,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EACrD,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAC1D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EACzD,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,SAAA;AAAA,EAC5D,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EACpE,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAC/D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EACvD,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAC5D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EAC1D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC9D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAC1D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAC1D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EACzD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAC3D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,OAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EACzD,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EACjE,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,SAAA;AAAA,EAC/D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,UAAA;AAAA,EACnE,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EACrE,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAC/D,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EACxE,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,WAAA;AAAA,EAChE,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAC9D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAC5D,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,UAAA;AAAA,EACxE,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,OAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAC5D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EACtD,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAC7D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EACtE,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EACnE,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAChE,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,cAAA;AAAA,EAAe,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAC1E,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EACzE,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAC3E,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EACzE,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EACvE,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAC7E,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EACtE,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAC3D,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EACjE,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAChE,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,WAAA;AAAA,EAC1E,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,WAAA;AAAA,EAC7E,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAC1E,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,QAAA;AAAA,EACxE,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,WAAA;AAAA,EACvE,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EACpE,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC9D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EACxD,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EACzD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAC/D,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EACjE,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,SAAA;AAAA,EAC5D,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EACnE,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,SAAA;AAAA,EACzE,QAAA;AAAA,EAAS,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EACxE,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,MAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,aAAA;AAAA,EAAc,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,WAAA;AAAA,EAChF,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,KAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,UAAA;AAAA,EACnD,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EACnE,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EACzD,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,WAAA;AAAA,EACvE,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EACnE,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAC3E,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EACxE,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,UAAA;AAAA,EAClF,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,SAAA;AAAA,EAC7E,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,WAAA;AAAA,EAC9E,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EACzE,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EACxE,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EACvE,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EAC/E,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,UAAA;AAAA,EAC5E,UAAA;AAAA,EAAW,aAAA;AAAA,EAAc,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,aAAA;AAAA,EAChF,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAC/E,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,WAAA;AAAA,EACjF,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,cAAA;AAAA,EAAe,gBAAA;AAAA,EAAiB,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,aAAA;AAAA,EAC9F,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,UAAA;AAAA,EACrF,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,aAAA;AAAA,EAAc,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,aAAA;AAAA,EACnF,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,WAAA;AAAA,EAC1E,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAC3E,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EACtE,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAC3E,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,cAAA;AAAA,EAAe,cAAA;AAAA,EAAe,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,eAAA;AAAA,EAAgB,YAAA;AAAA,EAChG,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,WAAA;AAAA,EAC7E,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAC5E,cAAA;AAAA,EAAe,aAAA;AAAA,EAAc,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,eAAA;AAAA,EAC5F,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,SAAA;AAAA,EAC/E,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU;AAC/E,CAAC;AAGM,IAAM,KAAA,GAA2B,OAAO,MAAA,CAAO;AAAA,EACpD,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EACrD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,MAAA;AAAA,EACnD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAC9D,QAAA;AAAA,EAAS,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EACtE,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,WAAA;AAAA,EAClE,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EACjD,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAC/D,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC9D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAC7D,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EACzE,YAAA;AAAA,EAAa,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAClE,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,MAAA;AAAA,EAC7D,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,MAAA;AAAA,EAAO,YAAA;AAAA,EAAa,MAAA;AAAA,EACpE,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,WAAA;AAAA,EACzE,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAClE,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,KAAA;AAAA,EAAM,QAAA;AAAA,EACjD,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,OAAA;AAAA,EAC3D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,UAAA;AAAA,EAAW,OAAA;AAAA,EAC9D,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,UAAA;AAAA,EAC5D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EACtD,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAC3D,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAClD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EACrE,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,aAAA;AAAA,EACpE,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAC1E,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EACxD,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAC9D,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EACtD,WAAA;AAAA,EAAY,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EACzD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAC/D,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EACpD,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EACvD,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EACjE,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,UAAA;AAAA,EACnD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EACzD,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EACzD,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,KAAA;AAAA,EAC7D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAClE,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EACjE,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,OAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,KAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAC1D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAC3D,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,KAAA;AAAA,EAAM,MAAA;AAAA,EACzD,MAAA;AAAA,EAAO,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAC9D,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,QAAA;AAAA,EAC7E,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAC9D,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,UAAA;AAAA,EAC1E,aAAA;AAAA,EAAc,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAC3E,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,QAAA;AAAA,EACzD,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EACnD,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAC3D,MAAA;AAAA,EAAO,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC7D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EACvD,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,UAAA;AAAA,EAC5D,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,MAAA;AAAA,EAC9D,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC1D,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAC9D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC3D,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAC9D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EACjE,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EACzE,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAC7D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EACxD,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,OAAA;AAAA,EAC3E,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EAC9D,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,QAAA;AAAA,EACtE,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,UAAA;AAAA,EACvE,aAAA;AAAA,EAAc,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,aAAA;AAAA,EAAc,YAAA;AAAA,EAAa,UAAA;AAAA,EACtF,aAAA;AAAA,EAAc,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,WAAA;AAAA,EAAY,WAAA;AAAA,EAAY,WAAA;AAAA,EACjF,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,MAAA;AAAA,EAC1E,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EACpE,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,QAAA;AAAA,EAC9D,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EACzD,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAC/C,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EACnD,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAC3D,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,OAAA;AAAA,EAC/D,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAClE,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,SAAA;AAAA,EACvD,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EACtE,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC5D,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EACpE,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EACtE,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,SAAA;AAAA,EAC/D,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,YAAA;AAAA,EACzD,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,OAAA;AAAA,EAAQ,SAAA;AAAA,EACrE,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EACrD,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,WAAA;AAAA,EACxE,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EACjE,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,KAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EACtD,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EACtD,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,OAAA;AAAA,EACvD,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,SAAA;AAAA,EAClE,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,cAAA;AAAA,EACjE,cAAA;AAAA,EAAe,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC1E,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EACzD,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EACxD,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,UAAA;AAAA,EAChE,QAAA;AAAA,EAAS,WAAA;AAAA,EAAY,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAC/D,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,OAAA;AAAA,EACzD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EACtD,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,UAAA;AAAA,EACnE,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,WAAA;AAAA,EAAY,UAAA;AAAA,EAAW,UAAA;AAAA,EACpE,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,QAAA;AAAA,EACpE,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,SAAA;AAAA,EACvE,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EACpE,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,QAAA;AAAA,EAC7D,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,QAAA;AAAA,EAC9D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,KAAA;AAAA,EAAM,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EACnD,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,QAAA;AAAA,EACvD,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EACrD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,QAAA;AAAA,EACrD,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,OAAA;AAAA,EAC1D,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,WAAA;AAAA,EAClE,aAAA;AAAA,EAAc,YAAA;AAAA,EAAa,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,UAAA;AAAA,EAChF,WAAA;AAAA,EAAY,YAAA;AAAA,EAAa,YAAA;AAAA,EAAa,MAAA;AAAA,EAAO,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,OAAA;AAAA,EAC7E,YAAA;AAAA,EAAa,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,SAAA;AAAA,EAAU,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,QAAA;AAAA,EAAS,QAAA;AAAA,EACvE,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,SAAA;AAAA,EAAU,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,SAAA;AAAA,EAC/D,OAAA;AAAA,EAAQ,SAAA;AAAA,EAAU,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,KAAA;AAAA,EAAM,UAAA;AAAA,EAAW,OAAA;AAAA,EAAQ,OAAA;AAAA,EACzD,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,OAAA;AAAA,EAAQ,QAAA;AAAA,EAAS,SAAA;AAAA,EAAU,YAAA;AAAA,EAAa,WAAA;AAAA,EAAY,WAAA;AAAA,EACtE,UAAA;AAAA,EAAW,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,MAAA;AAAA,EAAO,OAAA;AAAA,EACtD,UAAA;AAAA,EAAW,UAAA;AAAA,EAAW,QAAA;AAAA,EAAS,QAAA;AAAA,EAAS,MAAA;AAAA,EAAO,OAAA;AAAA,EAAQ,YAAA;AAAA,EAAa;AACtE,CAAC;AAMM,IAAM,iBAAsC,MAAA,CAAO,MAAA;AAAA,sBACpD,GAAA,CAAY;AAAA;AAAA;AAAA,GAGf;AACH;;;ACxRA,SAAS,WAAW,IAAA,EAA4B;AAC9C,EAAA,IAAI,IAAI,IAAA,GAAO,CAAA;AACf,EAAA,OAAO,MAAM;AACX,IAAA,CAAA,GAAK,IAAI,UAAA,GAAc,CAAA;AACvB,IAAA,IAAI,IAAI,IAAA,CAAK,IAAA,CAAK,IAAK,CAAA,KAAM,EAAA,EAAK,IAAI,CAAC,CAAA;AACvC,IAAA,CAAA,GAAK,CAAA,GAAI,KAAK,IAAA,CAAK,CAAA,GAAK,MAAM,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,GAAK,CAAA;AAC7C,IAAA,OAAA,CAAA,CAAS,CAAA,GAAK,CAAA,KAAM,EAAA,MAAS,CAAA,IAAK,UAAA;AAAA,EACpC,CAAA;AACF;AAEA,IAAM,MAAA,GAAS,YAAY,gBAAgB,CAAA,CAAA,CAAA;AAwBpC,SAAS,UAAA,CACd,MAAA,EACA,MAAA,GAAqB,SAAA,EACrB,OAAA,EACQ;AACR,EAAA,MAAM,EAAA,GAAK,cAAA,CAAe,MAAA,EAAQ,OAAO,CAAA;AACzC,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,OAAA;AACH,MAAA,OAAO,EAAA,CAAG,KAAA;AAAA,IACZ,KAAK,SAAA;AACH,MAAA,OAAO,EAAA,CAAG,IAAA;AAAA,IACZ,KAAK,KAAA;AACH,MAAA,OAAO,EAAA,CAAG,GAAA;AAAA,IACZ,KAAK,MAAA;AACH,MAAA,OAAO,EAAA,CAAG,IAAA;AAAA;AAEhB;AAMO,SAAS,cAAA,CACd,QACA,OAAA,EACiB;AACjB,EAAA,MAAM,UAAA,GAAa,SAAS,UAAA,IAAc,UAAA;AAC1C,EAAA,MAAM,KAAA,GAAQ,SAAS,KAAA,IAAS,KAAA;AAChC,EAAA,MAAM,OAAA,GAAU,SAAS,aAAA,IAAiB,cAAA;AAC1C,EAAA,MAAM,SAAS,OAAA,EAAS,MAAA,GAAS,CAAA,EAAG,OAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,GAAM,MAAA;AAExD,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,GAAS,MAAM,CAAA;AACnC,EAAA,MAAM,GAAA,GAAM,SAAA,CAAU,MAAA,GAAS,MAAM,CAAA;AAGrC,EAAA,MAAM,IAAA,GAAA,CACF,IAAA,CAAK,CAAC,CAAA,IAAK,KAAO,IAAA,CAAK,CAAC,CAAA,IAAK,EAAA,GAAO,KAAK,CAAC,CAAA,IAAK,CAAA,GAAK,IAAA,CAAK,CAAC,CAAA,MAAO,CAAA;AACrE,EAAA,MAAM,GAAA,GAAM,WAAW,IAAI,CAAA;AAG3B,EAAA,IAAI,IAAA,GAAO,WAAW,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,UAAA,CAAW,MAAM,CAAC,CAAA;AAC3D,EAAA,IAAI,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,KAAA,CAAM,MAAM,CAAC,CAAA;AAClD,EAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,IAAA,GAAO,KAAK,CAAA,EAAG;AAChC,IAAA,IAAA,GAAO,WAAW,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,UAAA,CAAW,MAAM,CAAC,CAAA;AACvD,IAAA,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,KAAA,CAAM,MAAM,CAAC,CAAA;AAAA,EAChD;AAGA,EAAA,MAAM,IAAA,GAAO,WAAW,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,UAAA,CAAW,MAAM,CAAC,CAAA;AAC7D,EAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,KAAI,GAAI,KAAA,CAAM,MAAM,CAAC,CAAA;AAGpD,EAAA,MAAM,aAAA,GAAgB,GAAA,CAAI,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAEtC,EAAA,MAAM,GAAA,GAAM,SAAS,SAAA,IAAa,GAAA;AAElC,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,IAAA;AAAA,IACP,IAAA,EAAM,OAAO,GAAA,GAAM,KAAA;AAAA,IACnB,GAAA,EAAK,IAAA,GAAO,GAAA,GAAM,KAAA,GAAQ,GAAA,GAAM,aAAA;AAAA,IAChC,MAAM,IAAA,GAAO,GAAA,GAAM,KAAA,GAAQ,GAAA,GAAM,OAAO,GAAA,GAAM,KAAA;AAAA,IAC9C,SAAA,EAAW,IAAA;AAAA,IACX,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,GAAA;AAAA,IACN;AAAA,GACF;AACF;;;ACvGA,IAAM,MAAA,GAAS,IAAI,GAAA,CAAI,UAAU,CAAA;AACjC,IAAM,OAAA,GAAU,IAAI,GAAA,CAAI,KAAK,CAAA;AAWtB,SAAS,eAAe,IAAA,EAAuB;AACpD,EAAA,OAAO,YAAA,CAAa,IAAI,CAAA,KAAM,IAAA;AAChC;AASO,SAAS,aACd,IAAA,EACsB;AAEtB,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,6CAA6C,CAAA;AACzE,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAM,GAAG,GAAA,EAAK,IAAA,EAAM,IAAI,CAAA,GAAI,QAAA;AAC5B,IAAA,IAAI,OAAO,GAAA,CAAI,GAAG,KAAK,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA,EAAG;AACxC,MAAA,OAAO,EAAE,SAAA,EAAW,GAAA,EAAK,IAAA,EAAM,eAAe,IAAA,EAAK;AAAA,IACrD;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,MAAM,YAAY,IAAA,CAAK,KAAA;AAAA,IACrB;AAAA,GACF;AACA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,GAAG,IAAA,EAAM,KAAK,CAAA,GAAI,SAAA;AACxB,IAAA,IAAI,OAAO,GAAA,CAAI,IAAI,KAAK,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA,EAAG;AAC1C,MAAA,OAAO,EAAE,SAAA,EAAW,IAAA,EAAM,IAAA,EAAM,KAAA,EAAM;AAAA,IACxC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,KAAA,CAAM,+BAA+B,CAAA;AAC/D,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,GAAG,GAAA,EAAK,IAAI,CAAA,GAAI,YAAA;AACtB,IAAA,IAAI,OAAO,GAAA,CAAI,GAAG,KAAK,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA,EAAG;AACxC,MAAA,OAAO,EAAE,SAAA,EAAW,GAAA,EAAK,IAAA,EAAK;AAAA,IAChC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA;AACT","file":"chunk-UTT764K6.js","sourcesContent":["// ═══════════════════════════════════════════════════════════════\n// Pure-JS SHA-256 — NIST FIPS 180-4\n// Synchronous, zero dependencies, works in all JS environments.\n// ═══════════════════════════════════════════════════════════════\n\nconst K: readonly number[] = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n];\n\nfunction rotr(n: number, x: number): number {\n return (x >>> n) | (x << (32 - n));\n}\n\nexport function sha256(input: string): Uint8Array {\n // Encode UTF-8\n const encoder = new TextEncoder();\n const msg = encoder.encode(input);\n const bitLen = msg.length * 8;\n\n // Padding: append 1-bit, zeros, then 64-bit big-endian length\n const padLen = 64 - ((msg.length + 9) % 64);\n const totalLen = msg.length + 1 + (padLen === 64 ? 0 : padLen) + 8;\n const buf = new Uint8Array(totalLen);\n buf.set(msg);\n buf[msg.length] = 0x80;\n // Write 64-bit big-endian length (we only use lower 32 bits since JS strings are limited)\n const dv = new DataView(buf.buffer);\n dv.setUint32(totalLen - 4, bitLen, false);\n\n // Initial hash values\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n\n const W = new Int32Array(64);\n\n // Process each 512-bit (64-byte) block\n for (let offset = 0; offset < totalLen; offset += 64) {\n for (let i = 0; i < 16; i++) {\n W[i] = dv.getInt32(offset + i * 4, false);\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(7, W[i - 15]) ^ rotr(18, W[i - 15]) ^ (W[i - 15] >>> 3);\n const s1 = rotr(17, W[i - 2]) ^ rotr(19, W[i - 2]) ^ (W[i - 2] >>> 10);\n W[i] = (W[i - 16] + s0 + W[i - 7] + s1) | 0;\n }\n\n let a = h0, b = h1, c = h2, d = h3;\n let e = h4, f = h5, g = h6, h = h7;\n\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(6, e) ^ rotr(11, e) ^ rotr(25, e);\n const ch = (e & f) ^ (~e & g);\n const temp1 = (h + S1 + ch + K[i] + W[i]) | 0;\n const S0 = rotr(2, a) ^ rotr(13, a) ^ rotr(22, a);\n const maj = (a & b) ^ (a & c) ^ (b & c);\n const temp2 = (S0 + maj) | 0;\n\n h = g; g = f; f = e; e = (d + temp1) | 0;\n d = c; c = b; b = a; a = (temp1 + temp2) | 0;\n }\n\n h0 = (h0 + a) | 0; h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0; h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0; h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0; h7 = (h7 + h) | 0;\n }\n\n const out = new Uint8Array(32);\n const outView = new DataView(out.buffer);\n outView.setUint32(0, h0, false); outView.setUint32(4, h1, false);\n outView.setUint32(8, h2, false); outView.setUint32(12, h3, false);\n outView.setUint32(16, h4, false); outView.setUint32(20, h5, false);\n outView.setUint32(24, h6, false); outView.setUint32(28, h7, false);\n return out;\n}\n\nexport function sha256Hex(input: string): string {\n return Array.from(sha256(input))\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Word Lists & Constants\n// 1000 adjectives × 1000 nouns = 1,000,000 display name combos.\n// All words are positive or neutral. No negative, offensive, or\n// embarrassing terms. PascalCase words, space-separated in output.\n// ═══════════════════════════════════════════════════════════════\n\nexport const SOLNAMES_VERSION = \"v1\" as const;\n\nexport type NameFormat = \"short\" | \"display\" | \"tag\" | \"full\";\n\nexport interface SolNameIdentity {\n short: string;\n name: string;\n tag: string;\n full: string;\n adjective: string;\n noun: string;\n hash: string;\n discriminator: string;\n}\n\n// ─── Adjectives (1000) ──────────────────────────────────────────\nexport const ADJECTIVES: readonly string[] = Object.freeze([\n \"Frost\",\"Solar\",\"Coral\",\"Amber\",\"Mossy\",\"Lunar\",\"Misty\",\"Alpine\",\n \"Autumn\",\"Breeze\",\"Cerulean\",\"Cloudy\",\"Cosmic\",\"Crystal\",\"Dewy\",\"Dusty\",\n \"Earthy\",\"Floral\",\"Forest\",\"Frozen\",\"Glacial\",\"Golden\",\"Grassy\",\"Harbor\",\n \"Ivory\",\"Jasmine\",\"Lagoon\",\"Leafy\",\"Lush\",\"Marine\",\"Meadow\",\"Mineral\",\n \"Mosaic\",\"Nectar\",\"Nordic\",\"Oceanic\",\"Orchid\",\"Pearly\",\"Petal\",\"Polar\",\n \"Prairie\",\"Rain\",\"River\",\"Rocky\",\"Sandy\",\"Savanna\",\"Shore\",\"Sierra\",\n \"Snowy\",\"Spring\",\"Starry\",\"Stone\",\"Summer\",\"Sunset\",\"Tidal\",\"Timber\",\n \"Tropic\",\"Tundra\",\"Valley\",\"Verdant\",\"Winding\",\"Winter\",\"Woody\",\"Bloom\",\n \"Blossom\",\"Brook\",\"Canyon\",\"Cedar\",\"Cloud\",\"Comet\",\"Copper\",\"Dawn\",\n \"Delta\",\"Dune\",\"Eclipse\",\"Fern\",\"Flame\",\"Flora\",\"Glade\",\"Azure\",\n \"Cobalt\",\"Crimson\",\"Indigo\",\"Scarlet\",\"Sapphire\",\"Emerald\",\"Ruby\",\"Garnet\",\n \"Onyx\",\"Jade\",\"Turquoise\",\"Magenta\",\"Plum\",\"Russet\",\"Tawny\",\"Burnt\",\n \"Gilded\",\"Platinum\",\"Bronze\",\"Chrome\",\"Pearl\",\"Opal\",\"Blush\",\"Rosy\",\n \"Dusky\",\"Inky\",\"Ashen\",\"Cream\",\"Slate\",\"Charcoal\",\"Steel\",\"Pewter\",\n \"Honey\",\"Saffron\",\"Citrus\",\"Lemon\",\"Tangerine\",\"Peach\",\"Apricot\",\"Vermilion\",\n \"Mauve\",\"Lilac\",\"Periwinkle\",\"Cerise\",\"Maroon\",\"Burgundy\",\"Wine\",\"Berry\",\n \"Cherry\",\"Mint\",\"Olive\",\"Teal\",\"Navy\",\"Cyan\",\"Neon\",\"Pastel\",\n \"Muted\",\"Lustrous\",\"Gleaming\",\"Glossy\",\"Shining\",\"Glowing\",\"Luminous\",\"Brilliant\",\n \"Sparkling\",\"Shimmering\",\"Iridescent\",\"Prismatic\",\"Spectral\",\"Twilight\",\"Sunrise\",\"Sunlit\",\n \"Moonlit\",\"Starlit\",\"Candlelit\",\"Firelit\",\"Sunbeam\",\"Afterglow\",\"Halo\",\"Flicker\",\n \"Glow\",\"Ray\",\"Beam\",\"Blaze\",\"Glint\",\"Spark\",\"Arc\",\"Prism\",\n \"Spectrum\",\"Rainbow\",\"Aurora\",\"Nebula\",\"Stellar\",\"Astral\",\"Lucent\",\"Frosted\",\n \"Swift\",\"Bold\",\"Keen\",\"Brave\",\"Noble\",\"Serene\",\"Fierce\",\"Gentle\",\n \"Agile\",\"Alert\",\"Astute\",\"Candid\",\"Clever\",\"Daring\",\"Eager\",\"Earnest\",\n \"Fair\",\"Gallant\",\"Graceful\",\"Hardy\",\"Honest\",\"Humble\",\"Jovial\",\"Joyful\",\n \"Kind\",\"Loyal\",\"Merry\",\"Mindful\",\"Nimble\",\"Patient\",\"Plucky\",\"Proud\",\n \"Quick\",\"Ready\",\"Resilient\",\"Savvy\",\"Sincere\",\"Skilled\",\"Steady\",\"Stout\",\n \"Strong\",\"Sure\",\"Tender\",\"True\",\"Valiant\",\"Willing\",\"Wise\",\"Witty\",\n \"Worthy\",\"Zealous\",\"Active\",\"Adept\",\"Ardent\",\"Avid\",\"Benign\",\"Bright\",\n \"Civil\",\"Clean\",\"Clear\",\"Composed\",\"Content\",\"Courtly\",\"Crafty\",\"Curious\",\n \"Decent\",\"Devout\",\"Diligent\",\"Direct\",\"Driven\",\"Dynamic\",\"Elegant\",\"Elite\",\n \"Even\",\"Exact\",\"Famed\",\"Fervent\",\"Fine\",\"Firm\",\"Fit\",\"Fluid\",\n \"Focal\",\"Fond\",\"Frank\",\"Free\",\"Fresh\",\"Friendly\",\"Frugal\",\"Gifted\",\n \"Glad\",\"Grand\",\"Great\",\"Green\",\"Grounded\",\"Hale\",\"Happy\",\"Hearty\",\n \"Heroic\",\"Ideal\",\"Infinite\",\"Inner\",\"Intact\",\"Intent\",\"Just\",\"Lively\",\n \"Lucky\",\"Major\",\"Mellow\",\"Mighty\",\"Modest\",\"Natural\",\"Neat\",\"Optimal\",\n \"Original\",\"Pacific\",\"Peaceful\",\"Pious\",\"Pleased\",\"Poised\",\"Polite\",\"Popular\",\n \"Potent\",\"Precious\",\"Premier\",\"Prime\",\"Proper\",\"Proven\",\"Pure\",\"Quiet\",\n \"Rapid\",\"Rare\",\"Real\",\"Regal\",\"Rich\",\"Rising\",\"Robust\",\"Royal\",\n \"Sacred\",\"Safe\",\"Scenic\",\"Secure\",\"Senior\",\"Sharp\",\"Simple\",\"Smart\",\n \"Smooth\",\"Snug\",\"Social\",\"Solid\",\"Sound\",\"Special\",\"Stable\",\"Stately\",\n \"Still\",\"Super\",\"Supreme\",\"Sweet\",\"Thorough\",\"Tidy\",\"Top\",\"Total\",\n \"Tough\",\"Trim\",\"Trusted\",\"Ultimate\",\"Unique\",\"United\",\"Upper\",\"Useful\",\n \"Valid\",\"Valued\",\"Varied\",\"Vital\",\"Vivid\",\"Vocal\",\"Whole\",\"Wide\",\n \"Young\",\"Zesty\",\"Iron\",\"Gold\",\"Silver\",\"Marble\",\"Granite\",\"Velvet\",\n \"Satin\",\"Silk\",\"Linen\",\"Cotton\",\"Suede\",\"Denim\",\"Canvas\",\"Leather\",\n \"Wooden\",\"Bamboo\",\"Wicker\",\"Woven\",\"Braided\",\"Knit\",\"Lace\",\"Mesh\",\n \"Fiber\",\"Glass\",\"Mirror\",\"Diamond\",\"Flint\",\"Basalt\",\"Obsidian\",\"Chalk\",\n \"Clay\",\"Gravel\",\"Pebble\",\"Cobble\",\"Brick\",\"Tile\",\"Resin\",\"Fossil\",\n \"Shell\",\"Bone\",\"Feather\",\"Plush\",\"Brushed\",\"Polished\",\"Hammered\",\"Forged\",\n \"Cast\",\"Molten\",\"Tempered\",\"Etched\",\"Carved\",\"Sculpted\",\"Spun\",\"Pressed\",\n \"Rolled\",\"Folded\",\"Layered\",\"Stacked\",\"Ribbed\",\"Matte\",\"Lacquered\",\"Enameled\",\n \"Glazed\",\"Painted\",\"Dyed\",\"Stained\",\"Refined\",\"Distilled\",\"Purified\",\"Filtered\",\n \"Alloyed\",\"Plated\",\"Coated\",\"Sealed\",\"Bonded\",\"Fused\",\"Welded\",\"Riveted\",\n \"Textured\",\"Grained\",\"Veined\",\"Flecked\",\"Speckled\",\"Dappled\",\"Streaked\",\"Banded\",\n \"Striped\",\"Checkered\",\"Waxed\",\"Oiled\",\"Cured\",\"Tanned\",\"Smoked\",\"Burnished\",\n \"Antiqued\",\"Patina\",\"Weathered\",\"Aged\",\"Rustic\",\"Hewn\",\"Vast\",\"Broad\",\n \"Deep\",\"High\",\"Tall\",\"Giant\",\"Colossal\",\"Massive\",\"Immense\",\"Boundless\",\n \"Endless\",\"Sweeping\",\"Spanning\",\"Extended\",\"Towering\",\"Soaring\",\"Lofty\",\"Elevated\",\n \"Raised\",\"Summit\",\"Apex\",\"Crest\",\"Crown\",\"Pinnacle\",\"Zenith\",\"Ridge\",\n \"Ledge\",\"Level\",\"Hollow\",\"Compact\",\"Dense\",\"Thick\",\"Narrow\",\"Slender\",\n \"Micro\",\"Mini\",\"Small\",\"Ample\",\"Hefty\",\"Jumbo\",\"Mega\",\"Ultra\",\n \"Macro\",\"Central\",\"Core\",\"Outer\",\"Lateral\",\"Radial\",\"Spiral\",\"Orbital\",\n \"Linear\",\"Planar\",\"Spherical\",\"Rounded\",\"Angular\",\"Pointed\",\"Tapered\",\"Curved\",\n \"Arced\",\"Twisted\",\"Coiled\",\"Fractal\",\"Cellular\",\"Quantum\",\"Photon\",\"Plasma\",\n \"Kinetic\",\"Static\",\"Charged\",\"Maximal\",\"Atomic\",\"Nano\",\"Tiered\",\"Strata\",\n \"Nested\",\"Stepped\",\"Graded\",\"Scaled\",\"Proportioned\",\"Modular\",\"Symmetric\",\"Parallel\",\n \"Flowing\",\"Drifting\",\"Gliding\",\"Sailing\",\"Floating\",\"Climbing\",\"Leaping\",\"Bounding\",\n \"Sprinting\",\"Dashing\",\"Rushing\",\"Surging\",\"Cascading\",\"Rolling\",\"Tumbling\",\"Spinning\",\n \"Whirling\",\"Twisting\",\"Swirling\",\"Pulsing\",\"Beating\",\"Humming\",\"Buzzing\",\"Ringing\",\n \"Chiming\",\"Singing\",\"Dancing\",\"Swaying\",\"Waving\",\"Rippling\",\"Bubbling\",\"Fizzing\",\n \"Crackling\",\"Snapping\",\"Clicking\",\"Tapping\",\"Drumming\",\"Thrumming\",\"Vibrant\",\"Magnetic\",\n \"Electric\",\"Blazing\",\"Burning\",\"Fiery\",\"Volcanic\",\"Thermal\",\"Warming\",\"Cooling\",\n \"Chilling\",\"Brisk\",\"Crisp\",\"Breezy\",\"Gusty\",\"Windy\",\"Airy\",\"Light\",\n \"Buoyant\",\"Weightless\",\"Fleet\",\"Peppy\",\"Zippy\",\"Snappy\",\"Speedy\",\"Sonic\",\n \"Turbo\",\"Warp\",\"Express\",\"Instant\",\"Darting\",\"Flying\",\"Jetting\",\"Cruising\",\n \"Coasting\",\"Rhythmic\",\"Cycling\",\"Pacing\",\"Striding\",\"Marching\",\"Trotting\",\"Galloping\",\n \"Bouncing\",\"Vaulting\",\"Arching\",\"Launched\",\"Propelled\",\"Hovering\",\"Orbiting\",\"Revolving\",\n \"Rotating\",\"Pivoting\",\"Swinging\",\"Rocking\",\"Tilting\",\"Shifting\",\"Sliding\",\"Skating\",\n \"Surfing\",\"Diving\",\"Plunging\",\"Dipping\",\"Wading\",\"Celestial\",\"Ethereal\",\"Mystic\",\n \"Arcane\",\"Ancient\",\"Eternal\",\"Timeless\",\"Ageless\",\"Enduring\",\"Lasting\",\"Perpetual\",\n \"Legendary\",\"Mythic\",\"Epic\",\"Fabled\",\"Storied\",\"Historic\",\"Classic\",\"Vintage\",\n \"Retro\",\"Modern\",\"Future\",\"Digital\",\"Cyber\",\"Virtual\",\"Pixel\",\"Binary\",\n \"Omega\",\"Alpha\",\"Beta\",\"Gamma\",\"Sigma\",\"Theta\",\"Lambda\",\"Kappa\",\n \"Zeta\",\"Epsilon\",\"Omni\",\"Dual\",\"Triple\",\"Nexus\",\"Vertex\",\"Vector\",\n \"Matrix\",\"Cipher\",\"Enigma\",\"Phantom\",\"Mirage\",\"Dream\",\"Vision\",\"Oracle\",\n \"Prophet\",\"Sage\",\"Shaman\",\"Druid\",\"Artisan\",\"Maestro\",\"Virtuoso\",\"Savant\",\n \"Prodigy\",\"Maven\",\"Guru\",\"Mentor\",\"Guide\",\"Scout\",\"Pioneer\",\"Voyager\",\n \"Wanderer\",\"Nomad\",\"Rover\",\"Ranger\",\"Sentinel\",\"Guardian\",\"Keeper\",\"Warden\",\n \"Champion\",\"Vanguard\",\"Herald\",\"Emissary\",\"Envoy\",\"Ambassador\",\"Steward\",\"Curator\",\n \"Patron\",\"Benefactor\",\"Founder\",\"Architect\",\"Builder\",\"Maker\",\"Crafter\",\"Weaver\",\n \"Forger\",\"Smith\",\"Wright\",\"Mason\",\"Brewer\",\"Baker\",\"Tanner\",\"Dyer\",\n \"Scribe\",\"Bard\",\"Minstrel\",\"Troubadour\",\"Storyteller\",\"Chronicler\",\"Lorekeeper\",\"Archivist\",\n \"Tranquil\",\"Placid\",\"Hushed\",\"Muffled\",\"Soft\",\"Subtle\",\"Faint\",\"Dim\",\n \"Pale\",\"Warm\",\"Cool\",\"Taut\",\"Tense\",\"Cozy\",\"Homey\",\"Pastoral\",\n \"Sylvan\",\"Bucolic\",\"Idyllic\",\"Quaint\",\"Charming\",\"Lovely\",\"Pretty\",\"Dapper\",\n \"Natty\",\"Chic\",\"Posh\",\"Classy\",\"Fancy\",\"Ornate\",\"Lavish\",\"Opulent\",\n \"Majestic\",\"Dignified\",\"August\",\"Solemn\",\"Sober\",\"Heartfelt\",\"Genuine\",\"Authentic\",\n \"Novel\",\"Singular\",\"Distinct\",\"Chosen\",\"Select\",\"Premium\",\"Deluxe\",\"Superior\",\n \"Exquisite\",\"Superb\",\"Splendid\",\"Glorious\",\"Sublime\",\"Resonant\",\"Harmonic\",\"Melodic\",\n \"Lyrical\",\"Poetic\",\"Seamless\",\"Effortless\",\"Organic\",\"Primal\",\"Devoted\",\"Dedicated\",\n \"Committed\",\"Focused\",\"Determined\",\"Resolute\",\"Steadfast\",\"Unwavering\",\"Constant\",\"Faithful\",\n \"Reliable\",\"Dependable\",\"Trusty\",\"Anchored\",\"Moored\",\"Sheltered\",\"Protected\",\"Guarded\",\n \"Shielded\",\"Fortified\",\"Reinforced\",\"Braced\",\"Bolstered\",\"Supported\",\"Upheld\",\"Sustained\",\n \"Preserved\",\"Conserved\",\"Stored\",\"Vaulted\",\"Locked\",\"Secured\",\"Fastened\",\"Linked\",\n \"Joined\",\"Connected\",\"Paired\",\"Matched\",\"Balanced\",\"Aligned\",\"Centered\",\"Aimed\",\n \"Directed\",\"Guided\",\"Steered\",\"Piloted\",\"Navigated\",\"Charted\",\"Mapped\",\"Tracked\",\n \"Pursued\",\"Discovered\",\"Unveiled\",\"Displayed\",\"Presented\",\"Granted\",\"Bestowed\",\"Conferred\",\n \"Sapient\",\"Sentient\",\"Radiant\",\"Fertile\",\"Abundant\",\"Bountiful\",\"Plentiful\",\"Prolific\",\n \"Thriving\",\"Flourishing\",\"Blooming\",\"Budding\",\"Growing\",\"Expanding\",\"Advancing\",\"Progressing\",\n \"Evolving\",\"Maturing\",\"Ripening\",\"Developing\",\"Emerging\",\"Nascent\",\"Incipient\",\"Dawning\",\n \"Unfolding\",\"Awakening\",\"Stirring\",\"Kindling\",\"Igniting\",\"Sparking\",\"Triggering\",\"Launching\",\n \"Initiating\",\"Pioneering\",\"Trailblazing\",\"Groundbreaking\",\"Innovative\",\"Inventive\",\"Creative\",\"Imaginative\",\n \"Inspired\",\"Visionary\",\"Prophetic\",\"Prescient\",\"Insightful\",\"Perceptive\",\"Observant\",\"Watchful\",\n \"Vigilant\",\"Attentive\",\"Thoughtful\",\"Considerate\",\"Caring\",\"Nurturing\",\"Fostering\",\"Cultivating\",\n \"Tending\",\"Pruning\",\"Trimming\",\"Shaping\",\"Forming\",\"Molding\",\"Fashioning\",\"Designing\",\n \"Drafting\",\"Sketching\",\"Drawing\",\"Painting\",\"Coloring\",\"Tinting\",\"Shading\",\"Blending\",\n \"Mixing\",\"Merging\",\"Combining\",\"Uniting\",\"Fusing\",\"Melding\",\"Weaving\",\"Knitting\",\n \"Stitching\",\"Sewing\",\"Quilting\",\"Patching\",\"Mending\",\"Healing\",\"Restoring\",\"Renewing\",\n \"Reviving\",\"Refreshing\",\"Rejuvenating\",\"Invigorating\",\"Energizing\",\"Empowering\",\"Strengthening\",\"Fortifying\",\n \"Hardening\",\"Tempering\",\"Seasoning\",\"Curing\",\"Aging\",\"Mellowing\",\"Softening\",\"Smoothing\",\n \"Leveling\",\"Planing\",\"Sanding\",\"Buffing\",\"Burnishing\",\"Radiating\",\"Beaming\",\"Lighting\",\n \"Illuminating\",\"Brightening\",\"Clarifying\",\"Purifying\",\"Filtering\",\"Distilling\",\"Condensing\",\"Concentrating\",\n \"Focusing\",\"Directing\",\"Channeling\",\"Terraced\",\"Ascending\",\"Streaming\",\"Umber\",\"Careful\",\n \"Perfecting\",\"Glittering\",\"Twinkling\",\"Verdure\",\"Auroral\",\"Boreal\",\"Austral\",\"Temperate\",\n]);\n\n// ─── Nouns (1000) ───────────────────────────────────────────────\nexport const NOUNS: readonly string[] = Object.freeze([\n \"Falcon\",\"Hawk\",\"Eagle\",\"Owl\",\"Heron\",\"Crane\",\"Swan\",\"Dove\",\n \"Raven\",\"Finch\",\"Robin\",\"Wren\",\"Lark\",\"Jay\",\"Ibis\",\"Kite\",\n \"Osprey\",\"Condor\",\"Pelican\",\"Stork\",\"Sparrow\",\"Tern\",\"Puffin\",\"Parrot\",\n \"Toucan\",\"Kingfisher\",\"Flamingo\",\"Quail\",\"Pheasant\",\"Grouse\",\"Oriole\",\"Warbler\",\n \"Thrush\",\"Starling\",\"Magpie\",\"Swallow\",\"Martin\",\"Plover\",\"Curlew\",\"Sandpiper\",\n \"Wolf\",\"Fox\",\"Bear\",\"Stag\",\"Elk\",\"Moose\",\"Bison\",\"Lynx\",\n \"Cougar\",\"Panther\",\"Jaguar\",\"Leopard\",\"Tiger\",\"Lion\",\"Cheetah\",\"Gazelle\",\n \"Antelope\",\"Impala\",\"Zebra\",\"Giraffe\",\"Rhino\",\"Hippo\",\"Otter\",\"Beaver\",\n \"Badger\",\"Marten\",\"Ferret\",\"Mink\",\"Hare\",\"Rabbit\",\"Squirrel\",\"Chipmunk\",\n \"Porcupine\",\"Hedgehog\",\"Armadillo\",\"Pangolin\",\"Lemur\",\"Gibbon\",\"Tamarin\",\"Capybara\",\n \"Chinchilla\",\"Ocelot\",\"Margay\",\"Coati\",\"Kinkajou\",\"Tapir\",\"Okapi\",\"Kudu\",\n \"Oryx\",\"Chamois\",\"Orca\",\"Dolphin\",\"Whale\",\"Narwhal\",\"Walrus\",\"Seal\",\n \"Manatee\",\"Turtle\",\"Iguana\",\"Gecko\",\"Chameleon\",\"Newt\",\"Salamander\",\"Crab\",\n \"Lobster\",\"Seahorse\",\"Starfish\",\"Octopus\",\"Squid\",\"Jellyfish\",\"Stingray\",\"Barracuda\",\n \"Marlin\",\"Sailfish\",\"Trout\",\"Salmon\",\"Mantis\",\"Cricket\",\"Firefly\",\"Dragonfly\",\n \"Cedar\",\"Oak\",\"Pine\",\"Birch\",\"Maple\",\"Elm\",\"Ash\",\"Willow\",\n \"Cypress\",\"Redwood\",\"Sequoia\",\"Spruce\",\"Fir\",\"Larch\",\"Yew\",\"Beech\",\n \"Alder\",\"Poplar\",\"Aspen\",\"Walnut\",\"Hickory\",\"Teak\",\"Mahogany\",\"Ebony\",\n \"Bamboo\",\"Palm\",\"Acacia\",\"Baobab\",\"Banyan\",\"Olive\",\"Laurel\",\"Magnolia\",\n \"Lotus\",\"Orchid\",\"Iris\",\"Lily\",\"Rose\",\"Tulip\",\"Daisy\",\"Aster\",\n \"Dahlia\",\"Peony\",\"Jasmine\",\"Violet\",\"Clover\",\"Fern\",\"Moss\",\"Lichen\",\n \"Ivy\",\"Vine\",\"Reed\",\"Sage\",\"Basil\",\"Thyme\",\"Mint\",\"Dill\",\n \"Fennel\",\"Sorrel\",\"Yarrow\",\"Thistle\",\"Heather\",\"Bluebell\",\"Primrose\",\"Marigold\",\n \"Sunflower\",\"Zinnia\",\"Pansy\",\"Poppy\",\"Crocus\",\"Snowdrop\",\"Foxglove\",\"Honeysuckle\",\n \"Wisteria\",\"Hibiscus\",\"Plumeria\",\"Gardenia\",\"Camellia\",\"Begonia\",\"Azalea\",\"Oleander\",\n \"Canyon\",\"Ridge\",\"Peak\",\"Summit\",\"Cliff\",\"Bluff\",\"Mesa\",\"Butte\",\n \"Plateau\",\"Terrace\",\"Valley\",\"Basin\",\"Gorge\",\"Ravine\",\"Gulch\",\"Fjord\",\n \"Inlet\",\"Bay\",\"Cove\",\"Harbor\",\"Lagoon\",\"Reef\",\"Atoll\",\"Isle\",\n \"Peninsula\",\"Cape\",\"Shoal\",\"Bank\",\"Ledge\",\"Shelf\",\"Dune\",\"Desert\",\n \"Steppe\",\"Tundra\",\"Glacier\",\"Moraine\",\"Geyser\",\"Oasis\",\"Delta\",\"Estuary\",\n \"Marsh\",\"Bog\",\"Swamp\",\"Fen\",\"Moor\",\"Heath\",\"Meadow\",\"Prairie\",\n \"Savanna\",\"Glen\",\"Dale\",\"Dell\",\"Vale\",\"Hollow\",\"Grove\",\"Copse\",\n \"Thicket\",\"Taiga\",\"Mangrove\",\"Wetland\",\"Cascade\",\"Brook\",\"Creek\",\"Stream\",\n \"River\",\"Lake\",\"Pond\",\"Pool\",\"Tarn\",\"Loch\",\"Falls\",\"Fountain\",\n \"Grotto\",\"Cavern\",\"Cave\",\"Tunnel\",\"Arch\",\"Bridge\",\"Ford\",\"Pass\",\n \"Trail\",\"Path\",\"Route\",\"Caldera\",\"Crater\",\"Vent\",\"Spire\",\"Needle\",\n \"Dome\",\"Gateway\",\"Portal\",\"Threshold\",\"Verge\",\"Brink\",\"Edge\",\"Rim\",\n \"Brow\",\"Crest\",\"Promontory\",\"Headland\",\"Spit\",\"Tombolo\",\"Isthmus\",\"Strait\",\n \"Narrows\",\"Sound\",\"Bight\",\"Reach\",\"Stretch\",\"Expanse\",\"Clearing\",\"Glade\",\n \"Knoll\",\"Hillock\",\"Mound\",\"Tor\",\"Crag\",\"Scarp\",\"Escarpment\",\"Comet\",\n \"Meteor\",\"Asteroid\",\"Nebula\",\"Galaxy\",\"Quasar\",\"Pulsar\",\"Star\",\"Sun\",\n \"Moon\",\"Planet\",\"Orbit\",\"Eclipse\",\"Corona\",\"Flare\",\"Nova\",\"Cosmos\",\n \"Void\",\"Abyss\",\"Ether\",\"Zenith\",\"Nadir\",\"Horizon\",\"Aurora\",\"Meridian\",\n \"Equinox\",\"Solstice\",\"Phase\",\"Cycle\",\"Epoch\",\"Eon\",\"Era\",\"Dawn\",\n \"Dusk\",\"Twilight\",\"Night\",\"Noon\",\"Morning\",\"Evening\",\"Sunset\",\"Sunrise\",\n \"Daybreak\",\"Nightfall\",\"Starlight\",\"Moonbeam\",\"Sunray\",\"Skyline\",\"Firmament\",\"Canopy\",\n \"Infinity\",\"Vega\",\"Rigel\",\"Altair\",\"Deneb\",\"Sirius\",\"Polaris\",\"Arcturus\",\n \"Antares\",\"Lyra\",\"Orion\",\"Draco\",\"Phoenix\",\"Hydra\",\"Corvus\",\"Cygnus\",\n \"Aquila\",\"Andromeda\",\"Pegasus\",\"Perseus\",\"Gemini\",\"Centauri\",\"Cassiopeia\",\"Scorpius\",\n \"Sagittarius\",\"Capella\",\"Procyon\",\"Aldebaran\",\"Betelgeuse\",\"Spica\",\"Prism\",\"Quill\",\n \"Forge\",\"Anvil\",\"Helm\",\"Rune\",\"Atlas\",\"Compass\",\"Anchor\",\"Beacon\",\n \"Bell\",\"Bugle\",\"Drum\",\"Flute\",\"Harp\",\"Horn\",\"Lyre\",\"Pipe\",\n \"Gong\",\"Chime\",\"Cymbal\",\"Fiddle\",\"Trumpet\",\"Viola\",\"Cello\",\"Oboe\",\n \"Lute\",\"Mandolin\",\"Zither\",\"Sitar\",\"Banjo\",\"Lantern\",\"Torch\",\"Candle\",\n \"Lamp\",\"Globe\",\"Lens\",\"Scope\",\"Mirror\",\"Frame\",\"Easel\",\"Palette\",\n \"Brush\",\"Chisel\",\"Mallet\",\"Hammer\",\"Tongs\",\"Ladle\",\"Kettle\",\"Crucible\",\n \"Mortar\",\"Pestle\",\"Flask\",\"Vial\",\"Beaker\",\"Alembic\",\"Furnace\",\"Kiln\",\n \"Loom\",\"Shuttle\",\"Bobbin\",\"Spool\",\"Thimble\",\"Pin\",\"Clasp\",\"Buckle\",\n \"Brooch\",\"Pendant\",\"Amulet\",\"Talisman\",\"Charm\",\"Token\",\"Coin\",\"Medal\",\n \"Badge\",\"Shield\",\"Banner\",\"Flag\",\"Pennant\",\"Sigil\",\"Stamp\",\"Emblem\",\n \"Totem\",\"Icon\",\"Statue\",\"Obelisk\",\"Monolith\",\"Cairn\",\"Tablet\",\"Scroll\",\n \"Tome\",\"Codex\",\"Ledger\",\"Journal\",\"Chronicle\",\"Almanac\",\"Manual\",\"Gazette\",\n \"Folio\",\"Pamphlet\",\"Broadsheet\",\"Parchment\",\"Vellum\",\"Papyrus\",\"Inkwell\",\"Quiver\",\n \"Satchel\",\"Pouch\",\"Casket\",\"Coffer\",\"Chest\",\"Crate\",\"Barrel\",\"Quartz\",\n \"Opal\",\"Onyx\",\"Agate\",\"Garnet\",\"Topaz\",\"Beryl\",\"Zircon\",\"Spinel\",\n \"Peridot\",\"Jasper\",\"Amethyst\",\"Citrine\",\"Tourmaline\",\"Malachite\",\"Azurite\",\"Lapis\",\n \"Pyrite\",\"Galena\",\"Mica\",\"Talc\",\"Gypsum\",\"Calcite\",\"Dolomite\",\"Basalt\",\n \"Granite\",\"Marble\",\"Slate\",\"Shale\",\"Sandstone\",\"Limestone\",\"Obsidian\",\"Pumice\",\n \"Tuff\",\"Chert\",\"Flint\",\"Chalcedony\",\"Carnelian\",\"Sardonyx\",\"Moonstone\",\"Sunstone\",\n \"Labradorite\",\"Tanzanite\",\"Kunzite\",\"Rhodonite\",\"Sodalite\",\"Chrysocolla\",\"Aventurine\",\"Fluorite\",\n \"Seraphinite\",\"Charoite\",\"Sugilite\",\"Larimar\",\"Prehnite\",\"Danburite\",\"Scolecite\",\"Celestite\",\n \"Amazonite\",\"Howlite\",\"Lepidolite\",\"Storm\",\"Thunder\",\"Lightning\",\"Breeze\",\"Gale\",\n \"Squall\",\"Typhoon\",\"Cyclone\",\"Monsoon\",\"Tempest\",\"Zephyr\",\"Chinook\",\"Mistral\",\n \"Sirocco\",\"Foehn\",\"Bora\",\"Rain\",\"Drizzle\",\"Shower\",\"Downpour\",\"Deluge\",\n \"Flood\",\"Torrent\",\"Current\",\"Tide\",\"Wave\",\"Swell\",\"Surf\",\"Spray\",\n \"Foam\",\"Mist\",\"Fog\",\"Haze\",\"Dew\",\"Frost\",\"Ice\",\"Snow\",\n \"Sleet\",\"Hail\",\"Rime\",\"Thaw\",\"Flow\",\"Drift\",\"Eddy\",\"Vortex\",\n \"Whirl\",\"Spiral\",\"Funnel\",\"Column\",\"Plume\",\"Wisp\",\"Streak\",\"Band\",\n \"Front\",\"Trough\",\"Rainbow\",\"Halo\",\"Mirage\",\"Shimmer\",\"Glimmer\",\"Tower\",\n \"Turret\",\"Bastion\",\"Citadel\",\"Fortress\",\"Castle\",\"Palace\",\"Manor\",\"Lodge\",\n \"Cabin\",\"Cottage\",\"Villa\",\"Ranch\",\"Barn\",\"Silo\",\"Mill\",\"Foundry\",\n \"Workshop\",\"Studio\",\"Gallery\",\"Museum\",\"Library\",\"Archive\",\"Treasury\",\"Vault\",\n \"Chamber\",\"Hall\",\"Court\",\"Plaza\",\"Garden\",\"Balcony\",\"Porch\",\"Arcade\",\n \"Colonnade\",\"Pergola\",\"Pavilion\",\"Gazebo\",\"Kiosk\",\"Chapel\",\"Temple\",\"Shrine\",\n \"Monastery\",\"Abbey\",\"Cathedral\",\"Basilica\",\"Minaret\",\"Pagoda\",\"Stupa\",\"Pyramid\",\n \"Arena\",\"Stadium\",\"Forum\",\"Market\",\"Bazaar\",\"Emporium\",\"Depot\",\"Station\",\n \"Terminal\",\"Dock\",\"Wharf\",\"Pier\",\"Jetty\",\"Quay\",\"Marina\",\"Lighthouse\",\n \"Watchtower\",\"Outpost\",\"Camp\",\"Shelter\",\"Refuge\",\"Sanctuary\",\"Haven\",\"Retreat\",\n \"Nest\",\"Aerie\",\"Burrow\",\"Den\",\"Lair\",\"Roost\",\"Perch\",\"Bower\",\n \"Arbor\",\"Alcove\",\"Sextant\",\"Astrolabe\",\"Sundial\",\"Hourglass\",\"Pendulum\",\"Gyroscope\",\n \"Turbine\",\"Dynamo\",\"Generator\",\"Piston\",\"Valve\",\"Lever\",\"Pulley\",\"Winch\",\n \"Derrick\",\"Gantry\",\"Scaffold\",\"Trellis\",\"Lattice\",\"Grid\",\"Net\",\"Web\",\n \"Axle\",\"Gear\",\"Cog\",\"Sprocket\",\"Chain\",\"Link\",\"Cable\",\"Wire\",\n \"Thread\",\"Cord\",\"Rope\",\"Rigging\",\"Mast\",\"Boom\",\"Spar\",\"Keel\",\n \"Hull\",\"Rudder\",\"Tiller\",\"Wheel\",\"Chart\",\"Map\",\"Gauge\",\"Meter\",\n \"Scale\",\"Caliper\",\"Ruler\",\"Level\",\"Plumb\",\"Protractor\",\"Template\",\"Stencil\",\n \"Mold\",\"Die\",\"Lathe\",\"Bellows\",\"Retort\",\"Condenser\",\"Centrifuge\",\"Spectrometer\",\n \"Oscilloscope\",\"Theodolite\",\"Transit\",\"Sounding\",\"Probe\",\"Sensor\",\"Relay\",\"Switch\",\n \"Circuit\",\"Diode\",\"Quest\",\"Saga\",\"Legend\",\"Myth\",\"Fable\",\"Ballad\",\n \"Anthem\",\"Hymn\",\"Ode\",\"Sonnet\",\"Verse\",\"Stanza\",\"Canto\",\"Chorus\",\n \"Refrain\",\"Motif\",\"Theme\",\"Arc\",\"Prologue\",\"Epilogue\",\"Prelude\",\"Overture\",\n \"Finale\",\"Crescendo\",\"Cadence\",\"Tempo\",\"Rhythm\",\"Pulse\",\"Beat\",\"Tone\",\n \"Note\",\"Chord\",\"Harmony\",\"Melody\",\"Lyric\",\"Opus\",\"Suite\",\"Etude\",\n \"Fugue\",\"Canon\",\"March\",\"Waltz\",\"Rondo\",\"Aria\",\"Duet\",\"Trio\",\n \"Quartet\",\"Ensemble\",\"Guild\",\"League\",\"Order\",\"Council\",\"Assembly\",\"Conclave\",\n \"Synod\",\"Quorum\",\"Cohort\",\"Legion\",\"Brigade\",\"Battalion\",\"Regiment\",\"Division\",\n \"Corps\",\"Fleet\",\"Squadron\",\"Patrol\",\"Convoy\",\"Caravan\",\"Expedition\",\"Voyage\",\n \"Journey\",\"Trek\",\"Odyssey\",\"Passage\",\"Crossing\",\"Venture\",\"Enterprise\",\"Mission\",\n \"Campaign\",\"Crusade\",\"Pilgrimage\",\"Safari\",\"Sortie\",\"Foray\",\"Rally\",\"Charge\",\n \"Advance\",\"Concord\",\"Ember\",\"Blaze\",\"Inferno\",\"Pyre\",\"Spark\",\"Cinder\",\n \"Smoke\",\"Vapor\",\"Steam\",\"Nimbus\",\"Cumulus\",\"Cirrus\",\"Stratus\",\"Billow\",\n \"Puff\",\"Wake\",\"Ripple\",\"Surge\",\"Ebb\",\"Flux\",\"Gush\",\"Rush\",\n \"Spring\",\"Well\",\"Font\",\"Source\",\"Origin\",\"Root\",\"Seed\",\"Sprout\",\n \"Bud\",\"Bloom\",\"Petal\",\"Leaf\",\"Branch\",\"Limb\",\"Trunk\",\"Bark\",\n \"Grain\",\"Fiber\",\"Pulp\",\"Core\",\"Sap\",\"Resin\",\"Nectar\",\"Pollen\",\n \"Spore\",\"Frond\",\"Tendril\",\"Runner\",\"Shoot\",\"Stalk\",\"Stem\",\"Thorn\",\n \"Burr\",\"Cone\",\"Acorn\",\"Pinecone\",\"Nutshell\",\"Keystone\",\"Capstone\",\"Milestone\",\n \"Cornerstone\",\"Foundation\",\"Bedrock\",\"Pillar\",\"Buttress\",\"Parapet\",\"Battlement\",\"Barbican\",\n \"Gatehouse\",\"Drawbridge\",\"Portcullis\",\"Moat\",\"Stockade\",\"Palisade\",\"Bulwark\",\"Levee\",\n \"Embankment\",\"Causeway\",\"Aqueduct\",\"Viaduct\",\"Trestle\",\"Span\",\"Lintel\",\"Plinth\",\n \"Pedestal\",\"Dais\",\"Rostrum\",\"Podium\",\"Stage\",\"Platform\",\"Deck\",\"Landing\",\n \"Berth\",\"Channel\",\"Lock\",\"Weir\",\"Dam\",\"Spillway\",\"Flume\",\"Chute\",\n \"Sluice\",\"Nozzle\",\"Spout\",\"Faucet\",\"Cistern\",\"Wellspring\",\"Headwater\",\"Watershed\",\n \"Alluvium\",\"Loam\",\"Humus\",\"Peat\",\"Marl\",\"Silt\",\"Writ\",\"Clamp\",\n \"Eyepiece\",\"Traverse\",\"Stride\",\"Parley\",\"Char\",\"Trace\",\"Confluence\",\"Rampart\",\n]);\n\n// ─── Blocked Combinations ──────────────────────────────────────\n// Adjective+Noun pairs that form offensive or inappropriate words\n// when concatenated. Checked at derivation time; PRNG advances\n// deterministically to produce a clean replacement.\nexport const BLOCKED_COMBOS: ReadonlySet<string> = Object.freeze(\n new Set<string>([\n // Add any discovered offensive adj+noun combinations here.\n // Format: \"Adjective Noun\" (space-separated)\n ]),\n);\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Name Derivation Engine\n// SHA-256(\"solnames-v1:\" + wallet) → PRNG → adjective + noun\n// ═══════════════════════════════════════════════════════════════\n\nimport { sha256, sha256Hex } from \"./sha256\";\nimport { ADJECTIVES, NOUNS, BLOCKED_COMBOS, SOLNAMES_VERSION } from \"./constants\";\nimport type { NameFormat, SolNameIdentity } from \"./constants\";\n\nfunction mulberry32(seed: number): () => number {\n let a = seed | 0;\n return () => {\n a = (a + 0x6d2b79f5) | 0;\n let t = Math.imul(a ^ (a >>> 15), 1 | a);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nconst DOMAIN = `solnames-${SOLNAMES_VERSION}:`;\n\n/** Options for customizing name derivation. */\nexport interface DeriveOptions {\n /** Custom adjective word list (default: built-in 1000 adjectives) */\n adjectives?: readonly string[];\n /** Custom noun word list (default: built-in 1000 nouns) */\n nouns?: readonly string[];\n /** Custom blocked adjective+noun combinations (default: built-in set) */\n blockedCombos?: Set<string>;\n /** Custom domain prefix for SHA-256 hashing (default: \"solnames-v1\") */\n domain?: string;\n /** Separator between adjective and noun (default: \" \") */\n separator?: string;\n}\n\n/**\n * Derive a deterministic name from a Solana wallet address.\n *\n * @param wallet Base58 wallet address\n * @param format Name format (default: \"display\")\n * @param options Custom word lists, domain, or blocked combos\n * @returns Formatted name string\n */\nexport function deriveName(\n wallet: string,\n format: NameFormat = \"display\",\n options?: DeriveOptions,\n): string {\n const id = deriveIdentity(wallet, options);\n switch (format) {\n case \"short\":\n return id.short;\n case \"display\":\n return id.name;\n case \"tag\":\n return id.tag;\n case \"full\":\n return id.full;\n }\n}\n\n/**\n * Derive the full identity bundle for a wallet address.\n * Returns all four name formats plus component parts.\n */\nexport function deriveIdentity(\n wallet: string,\n options?: DeriveOptions,\n): SolNameIdentity {\n const adjectives = options?.adjectives ?? ADJECTIVES;\n const nouns = options?.nouns ?? NOUNS;\n const blocked = options?.blockedCombos ?? BLOCKED_COMBOS;\n const domain = options?.domain ? `${options.domain}:` : DOMAIN;\n\n const hash = sha256(domain + wallet);\n const hex = sha256Hex(domain + wallet);\n\n // Seed PRNG from first 4 bytes (big-endian)\n const seed =\n ((hash[0] << 24) | (hash[1] << 16) | (hash[2] << 8) | hash[3]) >>> 0;\n const rng = mulberry32(seed);\n\n // Pick first adj+noun pair, retrying if blocked\n let adj1 = adjectives[Math.floor(rng() * adjectives.length)];\n let noun1 = nouns[Math.floor(rng() * nouns.length)];\n while (blocked.has(adj1 + noun1)) {\n adj1 = adjectives[Math.floor(rng() * adjectives.length)];\n noun1 = nouns[Math.floor(rng() * nouns.length)];\n }\n\n // Pick second adj+noun pair for full format\n const adj2 = adjectives[Math.floor(rng() * adjectives.length)];\n const noun2 = nouns[Math.floor(rng() * nouns.length)];\n\n // Discriminator from bytes 8-9 (4 hex chars)\n const discriminator = hex.slice(16, 20);\n\n const sep = options?.separator ?? \" \";\n\n return {\n short: adj1,\n name: adj1 + sep + noun1,\n tag: adj1 + sep + noun1 + \"#\" + discriminator,\n full: adj1 + sep + noun1 + \"-\" + adj2 + sep + noun2,\n adjective: adj1,\n noun: noun1,\n hash: hex,\n discriminator,\n };\n}\n","// ═══════════════════════════════════════════════════════════════\n// SolNames v1 — Name Validation & Parsing\n// ═══════════════════════════════════════════════════════════════\n\nimport { ADJECTIVES, NOUNS } from \"./constants\";\n\nconst adjSet = new Set(ADJECTIVES);\nconst nounSet = new Set(NOUNS);\n\nexport interface ParsedSolName {\n adjective: string;\n noun: string;\n discriminator?: string;\n}\n\n/**\n * Check if a string is a valid SolName (display, tag, or full format).\n */\nexport function isValidSolName(name: string): boolean {\n return parseSolName(name) !== null;\n}\n\n/**\n * Parse a SolName string into its component parts.\n * Supports display (\"Sunny Icon\"), tag (\"Sunny Icon#2f95\"),\n * and full (\"Sunny Icon-Infinite Ore\") formats.\n *\n * Returns null if the name doesn't match any valid format.\n */\nexport function parseSolName(\n name: string,\n): ParsedSolName | null {\n // Tag format: Adj Noun#xxxx\n const tagMatch = name.match(/^([A-Z][a-z]+) ([A-Z][a-z]+)#([0-9a-f]{4})$/);\n if (tagMatch) {\n const [, adj, noun, disc] = tagMatch;\n if (adjSet.has(adj) && nounSet.has(noun)) {\n return { adjective: adj, noun, discriminator: disc };\n }\n return null;\n }\n\n // Full format: Adj Noun-Adj Noun\n const fullMatch = name.match(\n /^([A-Z][a-z]+) ([A-Z][a-z]+)-([A-Z][a-z]+) ([A-Z][a-z]+)$/,\n );\n if (fullMatch) {\n const [, adj1, noun1] = fullMatch;\n if (adjSet.has(adj1) && nounSet.has(noun1)) {\n return { adjective: adj1, noun: noun1 };\n }\n return null;\n }\n\n // Display format: Adj Noun\n const displayMatch = name.match(/^([A-Z][a-z]+) ([A-Z][a-z]+)$/);\n if (displayMatch) {\n const [, adj, noun] = displayMatch;\n if (adjSet.has(adj) && nounSet.has(noun)) {\n return { adjective: adj, noun };\n }\n return null;\n }\n\n return null;\n}\n"]}
@@ -2145,7 +2145,7 @@ var NOUNS = Object.freeze([
2145
2145
  var BLOCKED_COMBOS = Object.freeze(
2146
2146
  /* @__PURE__ */ new Set([
2147
2147
  // Add any discovered offensive adj+noun combinations here.
2148
- // Format: "AdjectiveNoun" (PascalCase, concatenated)
2148
+ // Format: "Adjective Noun" (space-separated)
2149
2149
  ])
2150
2150
  );
2151
2151
 
@@ -2191,11 +2191,12 @@ function deriveIdentity(wallet, options) {
2191
2191
  const adj2 = adjectives[Math.floor(rng() * adjectives.length)];
2192
2192
  const noun2 = nouns[Math.floor(rng() * nouns.length)];
2193
2193
  const discriminator = hex.slice(16, 20);
2194
+ const sep = options?.separator ?? " ";
2194
2195
  return {
2195
2196
  short: adj1,
2196
- name: adj1 + noun1,
2197
- tag: adj1 + noun1 + "#" + discriminator,
2198
- full: adj1 + noun1 + "-" + adj2 + noun2,
2197
+ name: adj1 + sep + noun1,
2198
+ tag: adj1 + sep + noun1 + "#" + discriminator,
2199
+ full: adj1 + sep + noun1 + "-" + adj2 + sep + noun2,
2199
2200
  adjective: adj1,
2200
2201
  noun: noun1,
2201
2202
  hash: hex,
@@ -2210,7 +2211,7 @@ function isValidSolName(name) {
2210
2211
  return parseSolName(name) !== null;
2211
2212
  }
2212
2213
  function parseSolName(name) {
2213
- const tagMatch = name.match(/^([A-Z][a-z]+)([A-Z][a-z]+)#([0-9a-f]{4})$/);
2214
+ const tagMatch = name.match(/^([A-Z][a-z]+) ([A-Z][a-z]+)#([0-9a-f]{4})$/);
2214
2215
  if (tagMatch) {
2215
2216
  const [, adj, noun, disc] = tagMatch;
2216
2217
  if (adjSet.has(adj) && nounSet.has(noun)) {
@@ -2219,7 +2220,7 @@ function parseSolName(name) {
2219
2220
  return null;
2220
2221
  }
2221
2222
  const fullMatch = name.match(
2222
- /^([A-Z][a-z]+)([A-Z][a-z]+)-([A-Z][a-z]+)([A-Z][a-z]+)$/
2223
+ /^([A-Z][a-z]+) ([A-Z][a-z]+)-([A-Z][a-z]+) ([A-Z][a-z]+)$/
2223
2224
  );
2224
2225
  if (fullMatch) {
2225
2226
  const [, adj1, noun1] = fullMatch;
@@ -2228,7 +2229,7 @@ function parseSolName(name) {
2228
2229
  }
2229
2230
  return null;
2230
2231
  }
2231
- const displayMatch = name.match(/^([A-Z][a-z]+)([A-Z][a-z]+)$/);
2232
+ const displayMatch = name.match(/^([A-Z][a-z]+) ([A-Z][a-z]+)$/);
2232
2233
  if (displayMatch) {
2233
2234
  const [, adj, noun] = displayMatch;
2234
2235
  if (adjSet.has(adj) && nounSet.has(noun)) {
@@ -2247,5 +2248,5 @@ exports.deriveIdentity = deriveIdentity;
2247
2248
  exports.deriveName = deriveName;
2248
2249
  exports.isValidSolName = isValidSolName;
2249
2250
  exports.parseSolName = parseSolName;
2250
- //# sourceMappingURL=chunk-XXJJH56O.cjs.map
2251
- //# sourceMappingURL=chunk-XXJJH56O.cjs.map
2251
+ //# sourceMappingURL=chunk-YGD7EQEX.cjs.map
2252
+ //# sourceMappingURL=chunk-YGD7EQEX.cjs.map