File: blk03512.txt
%d/Foundry USA Pool #dropgold/ IjGREFUND:1D062102FFF4519F301AF716D7FAD976D0A35C05B4D94AD72899712FA1C40724 FjDOUT:EE27CCD6FA4B16B1C62D74F3C7233E1DBE4521A9D22A46C393645B2A4E3EE5E3 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Blight Shout" Grave Wand of Skill</text><text x="10" y="40" class="base">"Loath Song" Divine Robe of Rage +1</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">"Dire Song" Wool ShoesL of Rage</text><text x="10" y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Dragon Whisper" Titanium Ring of the Fox +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Blood Growl" Bone Wand of Perfection +1</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">"Dragon Roar" Linen Shoes of Fury +1<L /text><text x="10" y="120" class="base">Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Dread Shout" Gold Ring of Detection +1</text></svg>h! DDDDDDDDDDDDDDDDDDDD: text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 IjG=:BNB.BUSD-BD1:bnb1ve46954usuq2mw8xjvfsuy0sxykd4ctz6wqynx:6971479823::0 Aj?=:ETH.ETH:0x4562e8B21F9e7C1AF94917ae807f42062C26eeF4:7825661::0 Bj@=:ETH.ETH:0x1EBD4FC0B1Cbf034c2463526CB857934aB20897d:15636208::0 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 CjA=:ETH.ETH:0x66e03512DA2C4318f9F8fc1265F3E44fdb8e81d8:456151887::0 IjG=:BNB.ETH-1C9:bnb1crfzknj20tqkdhz7577gp9a8ajlfnx6rnjmxl7:153284668:te:0 text/plain;charset=utf-8 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" class="base">Divine Gloves of Power</tLoext><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! DjB=:BNB.BNB:bnb1q9xvk4nrkv5ks072spg3qv9wx7pvca3dt4lsud:58208215:te:0 DjB=:BNB.BNB:bnb1nc8n37fm3vtastzcl86s4w37rta6l6yna0yygy:41898474:te:0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Silk Sash</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10" y="120" class="base">Studded LeaL ther Gloves of Brilliance</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! HjF=:ETH.ETH:0x23495f8A823f09Cc540807b964e23fA7eC35Fc7D:1443245798:xdf:50 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Scimitar</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">"Horror Song" Full Helm of Rage +1</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class=L "base">Wool Gloves</text><text x="10" y="140" class="base">"Gale Instrument" Necklace of Power +1</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! IjGREFUND:781C01C436BDAFACDF50295B3E43EE9913FE5AD2C8F0FE9E3D8DF80831A548D3 FjDOUT:B4F698C3BF5F7D5262408F5CA3E487527FEB643C3AB9BD5A548EB4A211AF6698 CjA=:ETH.ETH:0x8896D8D4404CFC26E25B877e58D703b3611A73e0:145171498::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Long Sword</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Plated Belt of Anger</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" class="base">"Havoc WhiL sper" Linen Gloves of Anger +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! Bj@=:BNB.BNB:bnb1nul5pazjsuudl8l8x7edq9ydgyahrvaktnfs5u:43672215::0 ?j=add:btc.btc:maya1zvfwm65cmp9hufk3g800f7d2ejx7slrl4mgh07:TIER1 DjB=:BNB.BNB:bnb1z8prkv02cvyls8t08mv4mqw738cfa3j2yzf2e5:73746739:te:0 text/plain;charset=utf-8 llllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllll llllllllllllc:;;;;;;;;;;;cllllllllllllll llllllllllc;'.............;cllllllllllll lllllllll;,:lddddddddddddl:;;cllllllllll lllllllll..:xxxxxxxxxxxxxxo..:llllllllll lllllllll. .,,,,,,,,,,,,,,' .:llllllllll lllllllc:. ................ .,clllllllll lllllll;. . ... 'cllllllll lllllll, .',.. ..'''.. .;cllllllll lllllll, ..,,....'''''''.. .:llllllllll lllllllc;. ';,,,,''.....','.M, lllllllll. ,c:;'''''...'';;..:llllllllll llllllllc. 'cc:;,'......'::..:llllllllll llllllllc. .;ccc;.......'::..:llllllllll llllllllc. .,;:c:;::::::;,.';cllllllllll llllllllc. .,',,..::::c;.';cllllllllllll llllllllc. .,',' .....';cllllllllllllll llllllllc. .,',' .;c:::cllllllllllllllll DjB=:BNB.BNB:bnb1gpnh7da8e06pcptchuux5f5w6ca8ne668qt293:21080756:te:0 %d/Foundry USA Pool #dropgold/ LjJ=:BNB.BUSD-BD1:bnb1934l7r7xl8uecgzn57zmkk7fxpulpz50r82rmu:19694823964:te:0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Full Helm</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">"Sorrow Grasp" Silk Slippers</text><text x="10" y="120" class="base">StuL dded Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 3e2da09ce65cd3945a09c82cfe7d1857H0E daef0540217137d2b9ebcbd860a395ebF0C KjI=:BNB.BUSD-BD1:bnb1vxp8yls6r4426hzk5m5jvzvh6esguhgc6hzhmf:5883631966:te:0 text/plain;charset=utf-8 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="120" class="base">GauntletLos</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Silk Hood of Vitriol</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">"Damnation Shadow" Leather Boots of Skill</teL xt><text x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Amulet of Skill</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! 7j5+:BTC.BTC:thor1jfrvzc5lec8gktnk04e0mprnxry9hew9ltgsjxZ <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Behemoth Roar" Club of Perfection +1</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Studded Leather Belt</text><text x="10" y="100" class="base">"Demon Peak" Greaves of Fury +1</texL t><text x="10" y="120" class="base">Chain Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Dire Song" Titanium Ring of Detection +1</text></svg>h! 7j5ion:14.QmPkjsLLvbjJeGfWHjmW8gPz7fWgzbG97UtNq1Pd6TbxjR text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Heavy Belt of the Fox</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" class="base">"VipeL r Growl" Holy Gauntlets of the Fox +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book of Brilliance</text><text x="10" y="40" class="base">Divine Robe of Vitriol</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">"Armageddon Shout" Plated Belt of Vitriol +1</text><text x="10" y="100" class="base">Wool Shoes of VitrL iol</text><text x="10" y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring of Reflection</text></svg>h! text/plain;charset=utf-8 text/plain;charset=utf-8 %d/Foundry USA Pool #dropgold/ i FjDOUT:039CE9CE3D5B37A578505E424B5608AC434CDDFD8D77817B799D3261DBDD740B DjB+:BTC.BTC:maya15dn9uagrsfp3a6z08pxy8ark89jznvc2u8tn0g:wr:100:TIER2 FjDOUT:E4992BCDC874687532C402E9DFCF8662A51C8DE0219018BF09B3D771C4321FD5 IjGREFUND:AB634B10BD5EF4BA3804F78E002E9BD4468FA39C8A4E91FAF8578FC4DBE63B7B <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grimoire</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" class="base">Linen Gloves of Fury<Lq/text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">"Beast Song" Ancient Helm of Brilliance +1</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">DL ivine Slippers</text><text x="10" y="120" class="base">Gauntlets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! FjDOUT:8A49B87ED665913AB114242F63838B7F86BC598150BD521BBF27078892B57A8A <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand</text><text x="10" y="40" class="base">Robe of Rage</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">"Honour Grasp" Demonhide Belt of Rage</text><text x="10" y="100" class="base">Holy Greaves</text><text x="10" y="120" L class="base">"Morbid Tear" Ornate Gauntlets of Rage +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! FjDOUT:F4514F5BAF886F5266D557219757F794469A81F1D4C730457E16881E74DE3801 CjA=:BNB.BNB:bnb180nkqy9z0u02sh9vyxs0rl9jllaw2h5dlrqm09:141716191::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">"Dusk Tear" Crown of Brilliance +1</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="1L 20" class="base">Heavy Gloves</text><text x="10" y="140" class="base">"Corpse Sun" Amulet of the Fox +1</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Victory Shout" Grave Wand of the Twins +1</text><text x="10" y="40" class="base">Plate Mail</text><text x="10" y="60" class="base">Ornate Helm of Brilliance</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">"Blood Song" Leather BootL s of Brilliance +1</text><text x="10" y="120" class="base">Divine Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Rage Bite" Maul of Power +1</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">"Viper Growl" Wool Shoes of Enlightenment +1</text><L text x="10" y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Vortex Root" Titanium Ring of Rage +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer of Reflection</text><text x="10" y="40" class="base">"Corpse Whisper" Chain Mail of Perfection +1</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Divine Slippers ofL Perfection</text><text x="10" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Victory Moon" Bronze Ring of Protection</text></svg>h! <svg id='creepz43' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='320' height='320' viewBox='0 0 320 320' xml:space='preserve'><style> .s0{transform:scale(1);} .s1{ transform:scale(0.9); } .s2{ transform:scale(0.8); }#creepz43 .f { transform-box: fill-box;transform-origin: center; stroke:black; stroke-width:5; stroke-linecap: round;fill:none; opacity:0.5;} #creepz43 .bg { animation:8s bg infinite alternate ease-in-out; transform-origin:center; } @keyframes bg { 25% { transformM :rotate(10deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); }}#creepz43 .rgb { filter: contrast(120%) saturate(120%); } #creepz43 .hue { animation: hue 16s infinite; } @keyframes hue {0% { filter:hue-rotate(0deg); } 50% { filter: hue-rotate(45deg); } 100% { filter:hue-rotate(0deg); }} #creepz43 .body-fill { fill: url('#gradBody'); } #creepz43 .bodyAnim { transform-box: fill-box; transform-origin: center; animation: 4s bodyAnim infinite alternate ease-in-oM ut; } @keyframes bodyAnim { from { transform: scale(1); } to { transform: scale(1.1); }} #creepz43 .face-fill { fill: url('#gradFace'); }#creepz43 .faceAnim { transform-box:fill-box; transform-origin:center; animation:faceAnim infinite ease-in-out 8s alternate; } @keyframes faceAnim { 50% { transform: translateY(15%) } 100% { transform:translateY(-10%) }} #creepz43 .blink { animation:2.9s blink infinite; } @keyframes blink { 85% { clip-path:ellipse(100% 100%); animation-timing-function:ease-in } 89% { clip-path:ellM ipse(10% 0); } 100% { animation-timing-function:ease-out; }}</style><g class='rgb'><g filter='url(#grain)'><g class='hue'><rect id='bgColor' width='320' height='320' fill='url(#gradBg)'/></g></g><g class='s0' transform-origin='center'><use class='f bg' href='#bgAnim' /></g><g class='s1' transform-origin='center'><use class='f bg' href='#bgAnim' /></g><g class='s2' transform-origin='center'><use class='f bg' href='#bgAnim' /></g><path filter='url(#filter0)' class='body-fill bodyAnim' d='M64.5,320c12.8-65,35.7-134.8,M 94.9-171.5c60.3,34.3,83.1,106.9,96.1,171.5H64.5z' shape-rendering='crispEdges'/><g class='face faceAnim'><path class='face-fill' filter='url(#filter1)' d='M125.6,88.5c10.3,0,21.5,1.5,29,9.3c1.1,0.6,5.4,6.7,5.9,5.6c5.3-6,11.1-11.5,19.2-13.3c9.6-2,19.9-2.2,29.3,1.3c26,9.5,48.5,35.7,42.5,64.5c-3.3,16.6-15.2,27.5-30.1,34.4c-10.7,5.1-20.1,12.5-29.1,20.2c-10.2,8.6-17.5,19.8-24.2,31.2c-0.2,0.4-0.4,0.4-0.7,0.1c-4.3-3.5-6.6-8.5-7.2-14c-0.6,5.2-2.9,10.3-7,13.8c-0.6,0.5-0.6,0.5-1-0.2c-7.2-12.2-15.1-24.1-26.3-33c-8-6.2-16-12.7M -25.1-17.3c-11.6-5.4-23.1-13-28.4-25c-8.3-17.4-4.2-39.1,8.4-53.5C92.4,100,107.9,89.4,125.6,88.5z' shape-rendering='crispEdges'/><g class='group blink'><clipPath id='eyeLClip'><path class='eye faceAnim delay2' d='M169,151H151v18h18Z'/></clipPath><path class='eye faceAnim' id='eyeL' d='M124.5,157.5a11.4,11.4,0,0,1,11.4-11.4h48.7c19.3,1.6,11.4,28.7-6.1,22.8-12.5-4.9-24-4.9-36.5,0C133.9,171.8,124.5,166.1,124.5,157.5Z' shape-rendering='geometricPrecision'/><use xlink:href='#eyeL' fill='black'/><use clip-path='url(#eyeLM Clip)' xlink:href='#eyeL' fill='white'/></g></g></g><defs><path id='bgAnim' d='M15,160C15,79.9,79.9,15,160,15l0,0c80.1,0,145,64.9,145,145v145H15V160z' /><linearGradient id='gradBg' x1='160' y1='0' x2='160' y2='320' gradientUnits='userSpaceOnUse'><stop stop-color='#0080FF'/><stop offset='1' stop-color='#171717'/></linearGradient><linearGradient id='gradBody' x1='160' x2='160' y1='148.5' y2='320' gradientUnits='userSpaceOnUse'><stop stop-color='#FF0000'/><stop offset='1' stop-color='#999832'/></linearGradient><linearM Gradient id='gradFace' x1='160' x2='160' y1='88.5' y2='242' gradientUnits='userSpaceOnUse'><stop stop-color='#FF8000'/><stop offset='1' stop-color='#8D1E15'/></linearGradient><filter id='filter0' x='10.5' y='118.5' width='299' height='279.5' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'><feFlood flood-opacity='0' result='BackgroundImageFix'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='24'/><feGaussianBlur stdDevM iation='28'/><feComposite in2='hardAlpha' operator='out'/><feBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0'/><feBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow' result='shape'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='-10'/><feGaussianBlur stdDeviation='17'/><feComposite in2='hardAlpha' operator='arithmeticM ' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/><feBlend mode='normal' in2='shape' result='effect2_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset /><feGaussianBlur stdDeviation='25'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/><feBlend mode='overlay' in2='effect2_innerShaM dow' result='effect3_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='-16'/><feGaussianBlur stdDeviation='9'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/><feBlend mode='overlay' in2='effect3_innerShadow' result='effect4_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M 0 127 0' result='hardAlpha'/><feOffset dy='4'/><feGaussianBlur stdDeviation='5.5'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/><feBlend mode='overlay' in2='effect4_innerShadow' result='effect5_innerShadow'/></filter><filter id='filter1' x='14' y='58.5' width='292.5' height='261.5' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'><feFlood flood-opacity='0' result='BackgroundImageFix'/><feColorMatrix iM n='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='24'/><feGaussianBlur stdDeviation='28'/><feComposite in2='hardAlpha' operator='out'/><feBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0'/><feBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow' result='shape'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0M 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='-10'/><feGaussianBlur stdDeviation='17'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/><feBlend mode='normal' in2='shape' result='effect2_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset /><feGaussianBlur stdDeviation='25'/><feComposite in2='hardAlpha' operator='arithmeticM ' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/><feBlend mode='overlay' in2='effect2_innerShadow' result='effect3_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='-16'/><feGaussianBlur stdDeviation='9'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/><feBlend mode='overlay' inM 2='effect3_innerShadow' result='effect4_innerShadow'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='4'/><feGaussianBlur stdDeviation='5.5'/><feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/><feBlend mode='overlay' in2='effect4_innerShadow' result='effect5_innerShadow'/></filter><filter id='grain'><feTurbulence type='fractalNoise' numOctaL ves='1' baseFrequency='.9' result='f1'/><feComposite in='SourceGraphic' in2='f1' result='f2' operator='in' /><feBlend in='SourceGraphic' in2='f2' mode='overlay'/></filter></defs></svg> <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Beast Instrument" Falchion of Enlightenment +1</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">Divine Hood</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">"Death Sun" HeaL vy Boots of the Fox +1</text><text x="10" y="120" class="base">Demon's Hands</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Demon Grasp" Silver Ring of the Twins +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Armageddon Grasp" Katana of Brilliance</text><text x="10" y="40" class="base">"Horror Form" Dragonskin Armor of Vitriol +1</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">"L Damnation Form" Chain Boots of Vitriol</text><text x="10" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Death Roar" Gold Ring of Reflection +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grimoire</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Helm of Anger</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" class="base">Linen GlovesL </text><text x="10" y="140" class="base">Amulet of the Twins</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Divine Robe of Brilliance</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">"Armageddon Shout" Plated Belt of Brilliance</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10"L y="120" class="base">"Carrion Root" Linen Gloves of Brilliance +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand</text><text x="10" y="40" class="base">Plate Mail</text><text x="10" y="60" class="base">"Dragon Glow" Ornate Helm of Protection +1</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120"L class="base">Divine Gloves</text><text x="10" y="140" class="base">"Carrion Whisper" Amulet of Reflection +1</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand of the Twins</text><text x="10" y="40" class="base">"Brood Song" Robe of Brilliance</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">Demonhide Belt</text><text x="10" y="100" class="base">Holy Greaves of Brilliance</texL t><text x="10" y="120" class="base">Ornate Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring of Anger</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Titans</text><text x="10" y="40" class="base">"Cataclysm Bender" Ornate Chestplate of Anger +1</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Hard Leather Boots of L Anger</text><text x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Torment Form" Gold Ring of Vitriol</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club of Enlightenment</text><text x="10" y="40" class="base">"Armageddon Peak" Linen Robe of the Fox +1</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Shoes of the Fox</tL ext><text x="10" y="120" class="base">Holy Gauntlets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Rapture Song" Silver Ring of the Twins</text></svg>h! text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Foe Peak" Grimoire of Reflection +1</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">"Loath Instrument" Chain Boots oL f Perfection +1</text><text x="10" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Maelstrom Tear" Gold Ring of Protection +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Rage Grasp" Katana of Giants</text><text x="10" y="40" class="base">"Damnation Form" Dragonskin Armor of Protection +1</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">"VipeL r Form" Chain Boots of Protection</text><text x="10" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Vortex Roar" Gold Ring of Fury +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Spirit Bane" Warhammer of Reflection +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">"Apocalypse Whisper" Studded Leather BL oots of Perfection +1</text><text x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Armageddon Moon" Titanium Ring of Protection +1</text></svg>h! %d/Foundry USA Pool #dropgold/ DjB+:BTC.BTC:maya1g70v5r9ujxrwewdn3w44pmqcygx49dx7ne82vr:wr:100:TIER1b FjDOUT:4F22BB86EC2199DBF3EA0A6445DE110B6A11773D67CF701E0A97F8ED546544DA <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Bone Wand of Reflection</text><text x="10" y="40" class="base">Silk Robe of Perfection</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Linen Shoes of Perfection</text><text x=L "10" y="120" class="base">Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring of Protection</text></svg>h! FjDOUT:6A5B9EBBF882EE414BCA42D25A1A5F47173A627D29A20C4F2D7CFE363948F2CE Bj@ea6918b44e9a9c7dd4eab5c00e513ac268245859c51090eaa07daf0f3f8708bd )Optimized with https://ezgif.com/optimize <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">"Rune Root" Helm of Brilliance</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" class="basL e">Linen Gloves</text><text x="10" y="140" class="base">Amulet of the Fox</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! FjDOUT:A3DE5A4DC0947DEDB56CCF7DD18EC9C7FFB6C2CDCE59A0A4B594B6D036D188EB FjDOUT:DC3BC155078437812CDACE67BF672FAD458FC0883BE02699752186BF909DD08F FjDOUT:4C43E1BA0206A42B7F42762EADCB561F740D864C50541BF8BC4C5C5265F1F33D Aj?=:ETH.ETH:0x9199492CBc30632661fD8dfD5eBC85e996F1e963:3764916::0 KjI=:BNB.BUSD-BD1:bnb14zmyq4gxf0d2c3yepevsq9eudufnu9d3munkaj:215998245563::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Plate Mail of Protection</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">"Kraken Shout" Sash of Protection</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" yL ="120" class="base">"Pain Root" Divine Gloves of Protection +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! text/plain;charset=utf-8 "name":"21098.stas" <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Long Sword</text><text x="10" y="40" class="base">Plate Mail</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">Heavy Boots of Anger</text><text x="10" y="120" class="basL e">Dragonskin Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring of Skill</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand of Brilliance</text><text x="10" y="40" class="base">Robe of Vitriol</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">"Gloom Grasp" Demonhide Belt of Vitriol +1</text><text x="10" y="100" class="base">Holy Greaves of ViL triol</text><text x="10" y="120" class="base">Ornate Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring of Reflection</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club of Power</text><text x="10" y="40" class="base">"Corruption Peak" Demon Husk of Enlightenment +1</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Studded Leather Belt</text><text x="10" y="100" class="base">Greaves of EnlightenmeL nt</text><text x="10" y="120" class="base">Chain Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Viper Song" Titanium Ring of Rage</text></svg>h! %d/Foundry USA Pool #dropgold/ DjB+:BTC.BTC:maya1gekecuwh3njjefpyk96lgjqhyg9mr6ry99nsjh:wr:100:TIER1 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Scimitar</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Linen Sash of Protection</text><text x="10" y="100" class="base">Hard Leather Boots</text><text x="10" y="120"L class="base">Leather Gloves of Protection</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! FjDOUT:AB6A3CB81D73D6477014422119FE91357D5D220A4CA698D6DA89F674A6F578F0 FjDOUT:06A89E14B6F696019C173262EC989E43C4792200EB5182652D5E386A5FEECE10 text/plain;charset=utf-8 E{"p":"brc-20","op":"deploy","tick":"kamo","max":"21000000","lim":"5"}h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">"Dire Instrument" Ancient Helm of Enlightenment +1</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Hard Leather Boots<L /text><text x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">"Brood Shadow" Necklace of Detection</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! DjB+:BTC.BTC:maya1vs2qqga9wf6r3cr8wna4zu52qvklhdr9aqz993:wr:100:TIER2 text/plain;charset=utf-8 +{"p":"sns","op":"reg","name":"onetwo.sats"}h! Bj@=:ETH.ETH:0x6955008cc147e76f3f2A8629D6220833dA22Eb53:50087547::0 Bj@=:BNB.BNB:bnb174drwf0zuyjzf0ae77fce9gg4928a29yrj4sjr:80918079::0 text/plain;charset=utf-8 text/plain;charset=utf-8 CjA=:ETH.ETH:0x79217Ef8F5dD9e05dE30C6F6d359C878B460c42e:2845929:te:0 FjD=:BNB.ETH-1C9:bnb1ly56cuzxmknn08vtu7tw00045wsf6fsxd33fp8:40760075::0 Aj?=:ETH.ETH:0x4f42C05A656C9F8FC1ca8fff2164caE9AD0C36E4:4444951::0 Bj@=:BNB.BNB:bnb1gzzujsh6mpvc4w6zdw65jhhr2etecaxewr6mff:95012588::0 Bj@=:ETH.ETH:0x41cb6b98Cf82970ef5e76C57028581bB54d2d256:41168866::0 CjA=:ETH.ETH:0x57F592AE4EC3647cCbA50A50f279302D4a7470Dd:114169286::0 %d/Foundry USA Pool #dropgold/ 7j5+:BTC.BTC:maya1nh3elldhrckle860ar3g562v9d8fev40ah7ere <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Long Sword</text><text x="10" y="40" class="base">Plate Mail</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Sash of Anger</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" class="base">Divine GL~loves of Anger</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood of Perfection</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="12L 0" class="base">Dragonskin Gloves</text><text x="10" y="140" class="base">Necklace of Vitriol</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! FjDOUT:8B85153EC4D706B9FA1B820CF7FF06585F8B5BDDEEB86DD9C0006B8ECBD5188D FjDOUT:29945FB61D2C7CAE19886B88718AB40380BC27BD46FA9D7CA46146A6B7E3D7A9 FjDOUT:F91B4953FABCA5D35D953BCCE539A97EE9E96A353CCE361F174030B1BE0F33F2 FjDOUT:92D4E8490938325E44B20EA5DB2759B614522E4C3980A4D5A38CC5E5B05C7BEB <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood of Perfection</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="12L 0" class="base">Dragonskin Gloves</text><text x="10" y="140" class="base">Necklace of Vitriol</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! 4j2DC-L5:mkmUADfKkGTRDgm7u3cVU6DDu/are1tZMzLkqHdMHYc= XEXuv RkU{?=**dJ&-N Bj@=:BNB.BNB:bnb1r0d8cp5sxsfjrxun9lrrz9ge7c3jts5ytuvhgd:32777732::0 text/plain;charset=utf-8 7{"p":"brc-20","op":"mint","tick":"BRUH","amt":"100000"}h! text/plain;charset=utf-8 2{"p":"brc-20","op":"mint","tick":"meme","amt":"1"}h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">Full Helm</text><text x="10" y="80" class="base">War Belt of Fury</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="base">"EmpyreaL n Growl" Wool Gloves of Fury +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! "name": "nyedis.sats" IjGREFUND:B746582C80EF76F3BD738DFF981CEA2FEBBC00031911EF47C2285AB5D328B687 FjDOUT:4B0CAC644E1BFF6EE3E33490458C87C30F7B635459214A9AE7A583477A5E0DA8 FjDOUT:A86863FB99DCDAD4E3D9401AC006F138E6DBE3BF69D9F871A23D2F9FE62448DD FjDOUT:E4D4EEA7F1928A95E049C6733596167FE8FD46DB858E783C38AE5A058E2F08C2 FjDOUT:6A5D19B3015B707A96FF579849BB9B7877E5DD8AE32E73CD425B30F1716B7DFD FjDOUT:8E14B846D7A97C1EC408963C6272ABC0F6788E70A3B1060DBA217FEFE3108B63 FjDOUT:AC2300C2C4AF357EAF54D0190FC6D84EDCC7A4EEB388C21D39A98318D88D3FF4 CjA=:ETH.ETH:0xEE47F04eA3f6175Acd357Ec7560a8f14481A89d0:2649403:te:0 Mined by AntPool971` <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Linen Hood of Titans</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Hard Leather Boots</text><text x="10" y="120" class=L "base">Ornate Gauntlets</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Blight Grasp" Gold Ring of Skill +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Chronicle</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">Wool Sash of Brilliance</text><text x="10" y="100" class="base">Studded Leather Boots</text><text x="10" y="120" class=L "base">"Oblivion Moon" Hard Leather Gloves of Brilliance</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">"Mind Grasp" Demon Husk</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" class="base">GloveLss</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! CjA+:BTC.BTC:maya17lz0x3a58ew6qfc23ts68z7axyj7n8ymwqyxxh:wr:30:TIER3a Aj?=:ETH.ETH:0x8Ab9FdB63dBf35DA639FB521F6D507aD84Bb2eD0:6920978::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer of Reflection</text><text x="10" y="40" class="base">Holy Chestplate of Perfection</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Studded Leather Boots of Perfection</textL ><text x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring of Protection</text></svg>h! Bj@=:ETH.ETH:0x647cBe6e43FdF444fb4E1d0056C67827e4D0019f:58867873::0 JjH=:BNB.BUSD-BD1:bnb1hstxjt6xjys0l3dytqcr4ghf9pm0cffrlz3wln:24953729406::0 CjA=:ETH.ETH:0x51E2bDFAadb818E91a9645AC06a90C95EFab3D52:2075798:te:0 DjB=:ETH.ETH:0xF41E72a0fc9D3184a16F6b60cefdB6Fc8CD66ca3:52665841:te:0 text/plain;charset=utf-8 The Journal 30/Mar/2023 The 25 biggest U.S. banks gained $120 billion in deposits in the days after SVB collapsed, according to Federal Reserve data. All the U.S. banks below that level lost $108 billion over the same period. It was the largest weekly decline in smaller banks deposits in dollar terms on record.h! DjB=:BNB.BNB:bnb1sqw7dmveh9rqqfp9uv82t8wzesmg2yn2ljsypq:47575171:te:0 DjB=:BNB.BNB:bnb1kkq448djw7hz8k64ses3kjum3w6dut9xukkd8s:84081980:te:0 DjB=:BNB.BNB:bnb1nc8n37fm3vtastzcl86s4w37rta6l6yna0yygy:30691224:te:0 DjB=:BNB.BNB:bnb1v38gddn8vhrk58z2s8w5pxcxpqvau6gnqew3ct:30311945:te:0 FjDOUT:26733E7896BE53462B5A5CAF6206EE228F3C47F4691FD115E2FF2BCA47321FF1 FjDOUT:5C01147E2B3BD3CE9D6690C48F70A76F3EE3C23AB96EC87C739D0727BA6334EE FjDOUT:5C76158E25E37261DAF059202CA399A622DCC25F12BE29CBA967D3DCC214A39C DjB=:BNB.BNB:bnb1psr0h6mzrrve5tl2thcq6z6js6hseh8w8d4yqt:2739869029::0 Aj?=:ETH.ETH:0x8Ab9FdB63dBf35DA639FB521F6D507aD84Bb2eD0:5549143::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grimoire</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Silk Sash of Perfection</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10" y="120" class="bL ase">Studded Leather Gloves of Perfection</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">"Corpse Root" Crown of Detection</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="1L 20" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Amulet of Perfection</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Bone Wand of Reflection</text><text x="10" y="40" class="base">Silk Robe of Perfection</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Linen Shoes of Perfection</text><text x=L "10" y="120" class="base">Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring of Protection</text></svg>h! 351c26fc37bb21563422e2ef946ffa0fH0E eb8ad97c223fb8c5f722f3fc37086bdbG0D %d/Foundry USA Pool #dropgold/ FjD=:ETH.ETH:0x1538009b0C1a485adcaC10221172A4b1ff8637da:89194066:xdf:50 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Chronicle</text><text x="10" y="40" class="base">Chain Mail</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Ornate Belt of Protection</text><text x="10" y="100" class="base">Divine Slippers</text><text x="10" y="120" class="baL se">"Brimstone Moon" Silk Gloves of Protection</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! FjDOUT:883D85504AA41FF56BC530DC4E44106579DF33F28CB71EA77DD78C8768746D79 DjB+:BTC.BTC:maya1cpjhj27r04zz36gt5enl2jrhumhkc7eg4aqrk5:wr:100:TIER1 CjA=:ETH.ETH:0xa6FE8649D7707A4b81624eEa390F1aC727B18321:1949305:te:0 IjG=:GAIA.ATOM:cosmos1u9fg4v6mvnjukmyjemkvk7lykmaxjc52hjqand:755652913:t:0`s text/plain;charset=utf-8 {"type":"btcdomain","name":"freedom.btc","first_owner":"bc1pdudpt3wx70tszjl74tv89zve6cd83zd96wmha4qmecq7yqykq5mszuqenh","createDate":1680190035062,"registerDate":1680190035062,"expireDate":1711726035062,"img_url":"https://btcdomains.io/images/domain/freedom.jpeg","sig":"3045022100849b9758994c14ab59e842edfaa2187276a2fd75624328ecc925fddcceebc56a0220177748a533d0205a7c70ca270329405236f12f236be76bfbf85f2ac505307173"}h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Studded Leather Boots</text><text x="10" y="120" class="base">Holy Gauntlets</teLpxt><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Heavy Boots</text><text x="10" y="120" class="base">Divine Gloves</teLnxt><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="base">Gloves</textLn><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="base">Chain GloLvves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Chain Boots of Detection</text><text x="10" y="120" class="base">DivineLw Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">Greaves of Power</text><text x="10" y="120" class="basL|e">Silk Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Plate Mail</text><text x="10" y="60" class="base">Ornate Helm of Rage</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" class="base">Divine GlovesLy</text><text x="10" y="140" class="base">Amulet of Power</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Full Helm</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" class="base">"Honour Moon"L Gloves of Rage</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Shoes of Perfection</text><text x="10" y="120" class="base">Ornate GauntlL~ets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring of Skill</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">"Gloom Bite" Sash of Power +1</text><text x="10" y="100" class="base">Holy Greaves of Brilliance</text><text x="10" y="120" class=L}"base">Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Falchion</text><text x="10" y="40" class="base">Chain Mail</text><text x="10" y="60" class="base">Great Helm of Fury</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Divine Slippers</text><text x="10" y="120" class="base">SilL k Gloves</text><text x="10" y="140" class="base">Pendant of Giants</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">Divine Slippers</text><text x="10" y="120" class="base"L >Holy Gauntlets</text><text x="10" y="140" class="base">Amulet of Skill</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer</text><text x="10" y="40" class="base">Chain Mail</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" class="base">Silk GlL oves of Brilliance</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Falchion</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">Ornate Greaves</text><text x="10" y="120" class="base">Gauntlets</tL ext><text x="10" y="140" class="base">"Dread Grasp" Pendant of Vitriol +1</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Plated Belt of Power</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" classL ="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Silk Sash</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10" y="120" class="base">Studded LeaL ther Gloves of Brilliance</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Ancient Helm of Anger</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Hard Leather Boots</text><text x="10" y="120" class="bL ase">Leather Gloves</text><text x="10" y="140" class="base">Necklace of the Twins</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Full Helm</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">"Shimmering Moon" Shoes of Protection</text><text x="10" y=L "120" class="base">Wool Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">"Agony Bane" Holy Greaves of Anger +1</text><text x="10" y="120" class="base">StL udded Leather Gloves</text><text x="10" y="140" class="base">Amulet of Skill</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">"Vortex Glow" Crown of Protection</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Heavy Boots</text><text x="10" y="120" claL ss="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="base">Divine GlL oves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Behemoth Sun" Titanium Ring of Power +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">"Brood Form" Dragonskin Boots of Protection</text><text x="10"L y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10" L y="120" class="base">Wool Gloves of Titans</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Dragon's Crown of Power</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Heavy Boots</text><text x="10L " y="120" class="base">Dragonskin Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Linen Shoes of the Twins</text><textL x="10" y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Silk Slippers of Fury</text><text x="10" y="120" class="base">GauntletsL of Protection</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Blight Grasp" Gold Ring of Skill +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt of Power</text><text x="10" y="100" class="base">Holy Greaves</text><text x="10" y="120L " class="base">Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring of the Twins</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">"Dread Peak" Demonhide Belt of Power +1</text><text x="10" y="100" class="base">Shoes</text><text x=L "10" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt of Detection</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="base"L >"Golem Root" Heavy Gloves of Detection</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Brightsilk Sash of Anger</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="120" clL ass="base">Dragonskin Gloves of Anger</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Greaves</text><text L x="10" y="120" class="base">Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Wool Sash of Detection</text><text x="10" y="100" class="base">Divine Slippers of Detection</text><text x="10" y="120" class="baseL ">"Dragon Glow" Divine Gloves of Giants</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">"Death Glow" Linen Hood of Protection</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="L 120" class="base">Studded Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Divine Slippers</text><text x="10" y="120" class="base">"Morbid TeL ar" Heavy Gloves of Protection +1</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Silver Ring of Titans</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">Great Helm of Skill</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="base">DL emon's Hands</text><text x="10" y="140" class="base">"Pandemonium Bender" Pendant of Anger +1</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">"Vortex Glow" Crown of Protection</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Wool Shoes</text><textL x="10" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">"Demon Bender" Hood of Anger +1</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Divine Slippers</text><textL x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Cap of Brilliance</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Ornate Greaves</text><text x="10" y="120" class="basL e">Holy Gauntlets</text><text x="10" y="140" class="base">Necklace of Perfection</text><text x="10" y="160" class="base">Titanium Ring of Rage</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10" yL ="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Chain Mail</text><text x="10" y="60" class="base">Helm of Perfection</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" class="base">Holy Gauntlets</texL t><text x="10" y="140" class="base">Pendant of the Twins</text><text x="10" y="160" class="base">"Brimstone Shout" Titanium Ring of Giants +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Helm of the Twins</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Hard Leather Boots</text><text x="10" y="120" class="base">Wool L Gloves</text><text x="10" y="140" class="base">Necklace of Anger</text><text x="10" y="160" class="base">"Kraken Moon" Bronze Ring of Rage +1</text></svg>h! IjG=:ETH.WBTC-599:0x5d77f9d361822bdecb01496468c3858056b69d20:11477897:t:30 Bj@=:BNB.BNB:bnb1n0te7gsqwgpzw4j7lfzkux4atkgmj9r2tdtq5l:16132886::0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">"Damnation Song" Dragon's Crown of Vitriol +1</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Dragonskin Boots</text><texL t x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">"Gloom Bite" Sash of Power +1</text><text x="10" y="100" class="base">Ornate Greaves</text><text x="10" y="120" clL ass="base">Silk Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Corpse Sun" Silver Ring of Fury +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Divine Hood</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">"Pandemonium Moon" Silk Slippers of Protection</text><text x="1L 0" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Amulet of Skill</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Silk Hood of Vitriol</text><text x="10" y="80" class="base">Silk Sash</text><text x="10" y="100" class="base">Hard Leather Boots of Titans</text><text x="10" y="120"L class="base">Holy Gauntlets of Reflection</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Studded Leather Belt</text><text x="10" y="100" class="base">Demonhide Boots of the Fox</text><text x="10" y="L 120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Hate Shadow" Silver Ring of Rage</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">"Pandemonium Moon" Silk Slippers of Protection</teL xt><text x="10" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Silk SlipperL s</text><text x="10" y="120" class="base">Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">Divine Slippers</text><textL x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="120" class="base">OrnatL e Gauntlets</text><text x="10" y="140" class="base">"Plague Sun" Amulet of the Fox +1</text><text x="10" y="160" class="base">Gold Ring of Reflection</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">"Kraken Bender" Hard Leather Belt of Power +1</text><text x="10" y="100" class="base">Ornate Greaves</text><text x="10" L y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Pendant of Brilliance</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">War Cap of Giants</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Wool Shoes<L /text><text x="10" y="120" class="base">Holy Gauntlets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">"Morbid Whisper" Studded Leather Armor of Power +1</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Studded Leather Boots</L text><text x="10" y="120" class="base">Demon's Hands</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! text/plain;charset=utf-8 3{ "p": "sns", "op": "reg", "name": "regions.sats" }h! text/plain;charset=utf-8 5{ "p": "sns", "op": "reg", "name": "principal.sats" }h! (-B3*QB9;-%G6-T@5gTI ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/plain;charset=utf-8 1{ "p": "sns", "op": "reg", "name": "nreig.sats" }h! text/plain;charset=utf-8 9{ "p": "sns", "op": "reg", "name": "homeinsurance.sats" }h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">"Honour Moon" Demon Crown of Brilliance</text><text x="10" y="80" class="base">"Cataclysm Bender" Silk Sash of Power +1</text><text x="10" y="100" class="base">Heavy Boots of ReflL ection</text><text x="10" y="120" class="base">Holy Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Chronicle</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">Wool Sash of Brilliance</text><text x="10" y="100" class="base">Studded Leather Boots</text><text x="10" y="120" class=L "base">"Oblivion Moon" Hard Leather Gloves of Brilliance</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Linen Sash of Enlightenment</text><text x="10" y="100" class="base">Hard Leather Boots</text><text x="10" y="120" L class="base">"Onslaught Bane" Leather Gloves of Enlightenment +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Ancient Helm of Protection</text><text x="10" y="80" class="base">Plated Belt of Power</text><text x="10" y="100" class="base">Holy Greaves</text><text x="10" L y="120" class="base">Hard Leather Gloves of Brilliance</text><text x="10" y="140" class="base">Necklace of Fury</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Plate Mail of Protection</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">"Kraken Shout" Sash of Protection</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" yL ="120" class="base">"Pain Root" Divine Gloves of Protection +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">"Doom Form" Cap of Protection +1</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" clL ass="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Eagle Moon" Titanium Ring of Brilliance +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">"Cataclysm Bender" Silk Sash of Power +1</text><text x="10" y="100" class="base">Heavy Boots<L /text><text x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">"Storm Sun" Heavy Boots of Anger +1</text>L <text x="10" y="120" class="base">Hard Leather Gloves of the Twins</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">"Dread Peak" Demonhide Belt of Power +1</text><text x="10" y="100" class="base">Holy Greaves</text>L <text x="10" y="120" class="base">Wool Gloves of the Twins</text><text x="10" y="140" class="base">Pendant of Power</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Holy Greaves of Protection</text><text xL ="10" y="120" class="base">Leather Gloves of Detection</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring of Titans</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Great Helm of Power</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Chain Boots</text><text x="10L " y="120" class="base">"Empyrean Bane" Holy Gauntlets of Anger +1</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">Demon Crown of Anger</text><text x="10" y="80" class="base">Plated Belt of Power</text><text x="10" y="100" class="base">Divine Slippers of Detection</text><text x="10" y="120" clL ass="base">"Gale Instrument" Leather Gloves of Enlightenment +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">Shoes of Perfection</text><textL x="10" y="120" class="base">Chain Gloves</text><text x="10" y="140" class="base">"Dragon Glow" Amulet of Skill +1</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">"Corpse Roar" Ornate Greaves of Enlightenment +1</text><text x="10L " y="120" class="base">Demon's Hands</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Vengeance Sun" Platinum Ring of Fury +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">"Gloom Bite" Sash of Power +1</text><text x="10" y="100" class="base">Studded Leather L Boots of Fury</text><text x="10" y="120" class="base">Linen Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">"Damnation Song" Dragon's Crown of Vitriol +1</text><text x="10" y="80" class="base">Hard Leather Belt of Power</text><text x="10" y="100" class="base">Linen L Shoes of Skill</text><text x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Helm of the Twins</text><text x="10" y="80" class="base">Sash of Power</text><text x="10" y="100" class="base">Divine Slippers</text><text L x="10" y="120" class="base">"Glyph Instrument" Wool Gloves of Reflection +1</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand of Giants</text><text x="10" y="40" class="base">"Doom Song" Leather Armor of Protection</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Silk Sash</text><text x="10" y="100" class="base">Dragonskin Boots of ProtectiL on</text><text x="10" y="120" class="base">Studded Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring of Fury</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">"Eagle Grasp" Shoes of Giants +1</text>L <text x="10" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Brood Shadow" Silver Ring of Vitriol</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">Dragon's Crown of Rage</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Dragonskin Boots</L text><text x="10" y="120" class="base">Holy Gauntlets</text><text x="10" y="140" class="base">Pendant of Rage</text><text x="10" y="160" class="base">Gold Ring of the Twins</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Dragon's Crown</text><text x="10" y="80" class="base">Sash of Power</text><text x="10" y="100" class="base">Ornate Greaves of the Twins</teL xt><text x="10" y="120" class="base">Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Hypnotic Sun" Silver Ring of Anger +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Divine Hood of Titans</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Linen Shoes of the Fox</text><text x="10" L y="120" class="base">"Maelstrom Glow" Divine Gloves of Rage +1</text><text x="10" y="140" class="base">Pendant of Rage</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">"Morbid Whisper" Studded Leather Armor of Power +1</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Silk Slippers of Perfection<L /text><text x="10" y="120" class="base">Gauntlets</text><text x="10" y="140" class="base">"Rapture Song" Necklace of Rage</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" cL lass="base">Studded Leather Gloves</text><text x="10" y="140" class="base">"Armageddon Peak" Pendant of Enlightenment +1</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">"Chimeric Song" Silk Hood of the Twins +1</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">"Oblivion ShoL ut" Greaves of Rage</text><text x="10" y="120" class="base">Ornate Gauntlets</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Fate Sun" Shirt of Power +1</text><text x="10" y="60" class="base">Leather Cap</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Holy Greaves</text>L <text x="10" y="120" class="base">Linen Gloves of Power</text><text x="10" y="140" class="base">"Sol Shadow" Necklace of Protection</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Divine Hood</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" L class="base">Studded Leather Gloves of Reflection</text><text x="10" y="140" class="base">"Armageddon Peak" Pendant of Enlightenment +1</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">"Morbid Whisper" Studded Leather Armor of Power +1</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Chain Boots</text><texL t x="10" y="120" class="base">"Plague Glow" Studded Leather Gloves of Skill +1</text><text x="10" y="140" class="base">Necklace of Perfection</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">"Beast Song" Ancient Helm of Brilliance +1</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">"Vengeance L Roar" Linen Shoes of Enlightenment +1</text><text x="10" y="120" class="base">Wool Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">"Morbid Whisper" Studded Leather Armor of Power +1</text><text x="10" y="60" class="base">Divine Hood of Titans</text><text x="10" y="80" class="base">Demonhide Belt of Power</text><text x="10" y="100" class="base">Linen ShL oes</text><text x="10" y="120" class="base">"Plague Glow" Studded Leather Gloves of Skill +1</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Holy Chestplate</text><text x="10" y="60" class="base">"Chimeric Song" Silk Hood of the Twins +1</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Shoes</L text><text x="10" y="120" class="base">Linen Gloves of Power</text><text x="10" y="140" class="base">Amulet of Skill</text><text x="10" y="160" class="base">"Tempest Shout" Bronze Ring of Giants</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Fate Sun" Shirt of Power +1</text><text x="10" y="60" class="base">"Mind Shout" Leather Cap of Giants</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">LL eather Boots</text><text x="10" y="120" class="base">Ornate Gauntlets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Chimeric Form" Gold Ring of Rage</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Cataclysm Bite" Maul of Power +1</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Silk Sash</text><text x="10" y="100" class="base">"Empyrean Growl" Dragonskin Boots of EnliL ghtenment +1</text><text x="10" y="120" class="base">Studded Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Fate Root" Platinum Ring of Rage +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">"Carrion Tear" Crown of Vitriol</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Holy Greaves</text><text x="10" L y="120" class="base">Gauntlets of Skill</text><text x="10" y="140" class="base">"Rage Peak" Pendant of Enlightenment +1</text><text x="10" y="160" class="base">"Corruption Moon" Bronze Ring of Vitriol +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Leather Cap of Reflection</text><text x="10" y="80" class="base">"Dread Peak" Demonhide Belt of Power +1</text><text x="10" y="100" class="base">Silk Slippers of ReflectL ion</text><text x="10" y="120" class="base">"Grim Shout" Demon's Hands of Vitriol</text><text x="10" y="140" class="base">"Rune Roar" Amulet of Fury +1</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Demon Husk of Power</text><text x="10" y="60" class="base">Helm of the Twins</text><text x="10" y="80" class="base">Plated Belt of Power</text><text x="10" y="100" class="base">Linen Shoes</textL ><text x="10" y="120" class="base">Gloves of Detection</text><text x="10" y="140" class="base">"Rune Roar" Amulet of Fury +1</text><text x="10" y="160" class="base">"Vortex Roar" Bronze Ring of Anger +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Great Helm of Protection</text><text x="10" y="80" class="base">Plated Belt of Power</text><text x="10" y="100" class="base">Studded Leather BooL ts</text><text x="10" y="120" class="base">"Corruption Moon" Gauntlets of Detection</text><text x="10" y="140" class="base">"Vortex Root" Amulet of Rage</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">"Dread Peak" Demonhide Belt of Power +1</text><text x="10" y="100" classL ="base">Heavy Boots</text><text x="10" y="120" class="base">Divine Gloves</text><text x="10" y="140" class="base">"Vortex Root" Amulet of Brilliance +1</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">"Beast Song" Ancient Helm of Brilliance +1</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Wool ShoeL s</text><text x="10" y="120" class="base">"Corruption Moon" Gauntlets of Detection</text><text x="10" y="140" class="base">"Soul Whisper" Amulet of Anger +1</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Robe</text><text x="10" y="60" class="base">"Beast Song" Ancient Helm of Brilliance +1</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Studded Leather Boots</text><text x=L "10" y="120" class="base">Divine Gloves of Fury</text><text x="10" y="140" class="base">"Pandemonium Bender" Pendant of Anger +1</text><text x="10" y="160" class="base">"Armageddon Moon" Silver Ring of Brilliance +1</text></svg>h! DjB=:ETH.ETH:0x387B8b468Db5e324c342bE9080E54C670747B888:39309903:t:30GW <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Quarterstaff</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Shoes</text><text x="10" y="120" class="base">Holy Gauntlets</text><texLst x="10" y="140" class="base">Amulet of Brilliance</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Fate Sun" Shirt of Power +1</text><text x="10" y="60" class="base">"Shimmering Peak" Demon Crown of Enlightenment +1</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" L class="base">Divine Slippers of Fury</text><text x="10" y="120" class="base">Chain Gloves</text><text x="10" y="140" class="base">"Shimmering Bender" Pendant of Anger +1</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">"Death Glow" Linen Hood of Protection</text><text x="10" y="80" class="base">"Dread Peak" Demonhide Belt of Power +1</text><text x="10" yL ="100" class="base">Ornate Greaves of the Twins</text><text x="10" y="120" class="base">Dragonskin Gloves of Perfection</text><text x="10" y="140" class="base">Necklace of Anger</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Fate Roar" Club of Anger +1</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">"Storm Tear" War Cap of Vitriol</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Holy Greaves of Giants</textL ><text x="10" y="120" class="base">Studded Leather Gloves of Anger</text><text x="10" y="140" class="base">"Rapture Form" Necklace of Protection +1</text><text x="10" y="160" class="base">"Morbid Whisper" Titanium Ring of Perfection +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Leather Armor</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">"Gloom Bite" Sash of Power +1</text><text x="10" y="100" class="base">"Bramble Whisper" LiL nen Shoes of Fury +1</text><text x="10" y="120" class="base">Holy Gauntlets of Giants</text><text x="10" y="140" class="base">"Soul Whisper" Amulet of Anger +1</text><text x="10" y="160" class="base">"Behemoth Sun" Titanium Ring of Power +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">"Havoc Roar" Chain Mail of Power +1</text><text x="10" y="60" class="base">Ancient Helm of Protection</text><text x="10" y="80" class="base">Hard Leather Belt of Power</text><text x="10" y="100"M class="base">Shoes</text><text x="10" y="120" class="base">"Foe Grasp" Silk Gloves of Giants +1</text><text x="10" y="140" class="base">"Dusk Tear" Amulet of Giants +1</text><text x="10" y="160" class="base">"Dread Shout" Gold Ring of Protection +1</text></svg>h! text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 Mined by AntPool960u DjB+:BTC.BTC:maya1ws8rlaatc77wq3lmjzfn2ezkgrgwe62njv7ym9:wr:100:TIER1 Bj@9ab4948224b902780723872a602dc9186197b29ae36b614aaa721ac3f8b757c1 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand</text><text x="10" y="40" class="base">Divine Robe of Vitriol</text><text x="10" y="60" class="base">Helm</text><text x="10" y="80" class="base">"Demon Grasp" Plated Belt of Vitriol</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="1L 20" class="base">"Fate Tear" Linen Gloves of Vitriol +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! CjA=:ETH.ETH:0xf69A2b55Ec4B8490f5549447C3496331a44D7187:907329405::0 IjGREFUND:E8DB82F02FC5AC6020134D5EFC60EA0CF81A9D8B15DCB863B5EA3E20AA2444BD FjDOUT:4C4668362B1CE523BF684A66414093D0CB24E3BACD5F2C5DDE311984C23493A2 DjB=:BNB.BNB:bnb1r5atp9qhf3ye7ant26ujurv0xamklx0t2seyud:37193412:te:0 text/plain;charset=utf-8 8{ "p": "sns", "op": "reg", "name": "citizensbank.sats" }h! text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome of Power</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">"Brood Form" Full Helm of Giants +1</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">Divine Slippers</text><text x="10L " y="120" class="base">Chain Gloves</text><text x="10" y="140" class="base">"Sol Song" Necklace of Brilliance +1</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grave Wand</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Leather Boots</text><text x="10" y="120" class="base">GauntlLwets</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hate Bane" Warhammer of Power +1</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">"Woe Bender" Divine Hood of Anger +1</text><text x="10" y="80" class="base">Wool Sash</text><text x="10" y="100" class="base">Linen Shoes</text><L text x="10" y="120" class="base">Holy Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Skull Shout" Bronze Ring of the Twins +1</text></svg>h! iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"> <tiff:Compression>1</tiff:Compression> <tiff:Orientation>1</tiff:Orientation> <tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation> <tiff:ResolutionUnit>2</tiff:ResolutionUnit> </rdf:Description> text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"> <tiff:Compression>1</tiff:Compression> <tiff:Orientation>1</tiff:Orientation> <tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation> <tiff:ResolutionUnit>2</tiff:ResolutionUnit> </rdf:Description> %d/Foundry USA Pool #dropgold/ EjC=:ETH.ETH:0xD2b746f0E7c23D1d70B030044b94446E70c473B5:10522425:xdf:0 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Foe Moon" Book of the Twins</text><text x="10" y="40" class="base">"Torment Shadow" Plate Mail of Brilliance +1</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">"Loath Shadow" LeatL her Boots of Brilliance</text><text x="10" y="120" class="base">Divine Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">"Maelstrom Sun" Silver Ring of Anger +1</text></svg>h! Aj?=:ETH.ETH:0x3e53261C28f8DDb56C0781A12Ad8F2EeA242Ced7:8340517::0 Aj?=:ETH.ETH:0x073559500146b459cc56727F1517fa969425E679:3084197::0 Bj@=:BNB.BNB:bnb1n0te7gsqwgpzw4j7lfzkux4atkgmj9r2tdtq5l:13254189::0 FjDOUT:54B19F7148BF6D7E9C0C5A0152F8CFD6CB8B6ABF0890456FE95C62D1F45EC8F2 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Scimitar</text><text x="10" y="40" class="base">Ring Mail</text><text x="10" y="60" class="base">"Gale Song" Full Helm of Vitriol</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="bL ase">Wool Gloves</text><text x="10" y="140" class="base">Necklace of Titans</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Long Sword</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">"Ghoul Roar" Helm of the Fox +1</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" classL ="base">Linen Gloves</text><text x="10" y="140" class="base">"Dragon Glow" Amulet of Skill</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Short Sword</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">"Gloom Grasp" Demon Crown of Detection +1</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="12L 0" class="base">Gloves</text><text x="10" y="140" class="base">"Dread Bender" Pendant of Perfection +1</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! text/plain;charset=utf-8 4{ "p": "sns", "op": "reg", "name": "teledyne.sats" }h! text/plain;charset=utf-8 0{ "p": "sns", "op": "reg", "name": "epam.sats" }h! text/plain;charset=utf-8 9{ "p": "sns", "op": "reg", "name": "northerntrust.sats" }h! text/plain;charset=utf-8 6{ "p": "sns", "op": "reg", "name": "ventasreit.sats" }h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Brightsilk Sash of Perfection</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="120" claL ss="base">"Loath Bane" Dragonskin Gloves of Perfection +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer</text><text x="10" y="40" class="base">Holy Chestplate of Enlightenment</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">"Hate Growl" Wool Sash of Enlightenment +1</text><text x="10" y="100" class="base">Studded Leather BooL ts</text><text x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring of Rage</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Leather Armor of Brilliance</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">"Grim Shout" Silk Sash of Brilliance</text><text x="10" y="100" class="base">Dragonskin Boots</text><text L x="10" y="120" class="base">"Maelstrom Root" Studded Leather Gloves of Brilliance +1</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Quarterstaff of Giants</text><text x="10" y="40" class="base">Ornate Chestplate of Protection</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">"Havoc Tear" Linen Sash of Protection +1</text><text x="10" y="100" class="base">HL ard Leather Boots of Protection</text><text x="10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring of Fury</text></svg>h! -http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotoshoM p 23.0 (Windows)" xmpMM:InstanceID="xmp.iid:BD0704DDB24211ED9AAAA5BEFCC76ED7" xmpMM:DocumentID="xmp.did:BD0704DEB24211ED9AAAA5BEFCC76ED7"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:BD0704DBB24211ED9AAAA5BEFCC76ED7" stRef:documentID="xmp.did:BD0704DCB24211ED9AAAA5BEFCC76ED7"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> )A&&AB///BG?>>?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ))4&4?((?G?5?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG text/html;charset=utf-8 <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no" /> <link rel="preconnect" href="https://fonts.googleapis.com"> <title>LOOT for Taproot</title> box-sizing: border-box; font-size: 1.15rem; font-family: monospace; background-color: black; max-width: 70ch; padding: 3rem 1rem; line-height: 1.25; text-decoration: none !important; a.active:before { a.active:after { font-size: 2rem; font-size: 1.5rem; display: block; margin-bottom: 10px; line-height: 1.25; height: 1.8rem; font-size: 1.15rem; border: 1px solid white; margin-bottom: 10px; display: none; position: fixed; background-color: black; height: 100vh; display: none; position: fixed; box-sizing: border-box; transform: translate(-50%, -50%); max-width: 560px; max-height: 100vh; background-color: white; padding: 20px; text-align: center; border-radius: 25px; border: 2px solid var(--primary-color); .modal-content { overflow-y: auto; max-height: 85vh; background-color: white; text-align: center; border: transparent; display: none; border: 1px solid white; padding: 1rem; border-radius: 1rem; word-wrap: break-word; text-align: center; position: relative; text-align: left; .checking_mempool, .checking_mempool span { color: lightgreen; display: flex; justify-content: space-around; max-width: 6rem; margin: 0px 0.5rem; text-align: center; cursor: pointer; background-color: grey; border: 1px solid white; padding: .3rem; background-coloM .safari_warning { display: none; <script>!function (t) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else { ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).buffer = t() } }(function () { return function () { return function t(r, e, n) { function i(f, u) { if (!e[f]) { if (!r[f]) { vM ar s = "function" == typeof require && require; if (!u && s) return s(f, !0); if (o) return o(f, !0); var h = new Error("Cannot find module '" + f + "'"); throw h.code = "MODULE_NOT_FOUND", h } var a = e[f] = { exports: {} }; r[f][0].call(a.exports, function (t) { return i(r[f][1][t] || t) }, a, a.exports, t, r, e, n) } return e[f].exports } for (var o = "function" == typeof require && require, f = 0; f < n.length; f++)i(n[f]); return i } }()({ 1: [function (t, r, e) { "use strict"; e.byteLength = function (t) { vaM r r = h(t), e = r[0], n = r[1]; return 3 * (e + n) / 4 - n }, e.toByteArray = function (t) { var r, e, n = h(t), f = n[0], u = n[1], s = new o(function (t, r, e) { return 3 * (r + e) / 4 - e }(0, f, u)), a = 0, c = u > 0 ? f - 4 : f; for (e = 0; e < c; e += 4)r = i[t.charCodeAt(e)] << 18 | i[t.charCodeAt(e + 1)] << 12 | i[t.charCodeAt(e + 2)] << 6 | i[t.charCodeAt(e + 3)], s[a++] = r >> 16 & 255, s[a++] = r >> 8 & 255, s[a++] = 255 & r; 2 === u && (r = i[t.charCodeAt(e)] << 2 | i[t.charCodeAt(e + 1)] >> 4, s[a++] =M 255 & r); 1 === u && (r = i[t.charCodeAt(e)] << 10 | i[t.charCodeAt(e + 1)] << 4 | i[t.charCodeAt(e + 2)] >> 2, s[a++] = r >> 8 & 255, s[a++] = 255 & r); return s }, e.fromByteArray = function (t) { for (var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; f < u; f += 16383)o.push(a(t, f, f + 16383 > u ? u : f + 16383)); 1 === i ? (r = t[e - 1], o.push(n[r >> 2] + n[r << 4 & 63] + "==")) : 2 === i && (r = (t[e - 2] << 8) + t[e - 1], o.push(n[r >> 10] + n[r >> 4 & 63] + n[r << 2 & 63] + "=")); return o.join(""M ) }; for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = 0, s = f.length; u < s; ++u)n[u] = f[u], i[f.charCodeAt(u)] = u; function h(t) { var r = t.length; if (r % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var e = t.indexOf("="); return -1 === e && (e = r), [e, e === r ? 0 : 4 - e % 4] } function a(t, r, e) { for (var i, o, f = [], u = r; u < e; u += 3)i = (t[u] << 16 & 1671168M 0) + (t[u + 1] << 8 & 65280) + (255 & t[u + 2]), f.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]); return f.join("") } i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 }, {}], 2: [function (t, r, e) { (function (r) { "use strict"; var n = t("base64-js"), i = t("ieee754"); e.Buffer = r, e.SlowBuffer = function (t) { +t != t && (t = 0); return r.alloc(+t) }, e.INSPECT_MAX_BYTES = 50; var o = 2147483647; function f(t) { if (t > o) throw new RangeError('The value "' + t + '" is invalid fM or option "size"'); var e = new Uint8Array(t); return e.__proto__ = r.prototype, e } function r(t, r, e) { if ("number" == typeof t) { if ("string" == typeof r) throw new TypeError('The "string" argument must be of type string. Received type number'); return h(t) } return u(t, r, e) } function u(t, e, n) { if ("string" == typeof t) return function (t, e) { "string" == typeof e && "" !== e || (e = "utf8"); if (!r.isEncoding(e)) throw new TypeError("Unknown encoding: " + e); var n = 0 | p(t, e), i = f(n), o = i.writeM (t, e); o !== n && (i = i.slice(0, o)); return i }(t, e); if (ArrayBuffer.isView(t)) return a(t); if (null == t) throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t); if (j(t, ArrayBuffer) || t && j(t.buffer, ArrayBuffer)) return function (t, e, n) { if (e < 0 || t.byteLength < e) throw new RangeError('"offset" is outside of buffer bounds'); if (t.byteLength < e + (n || 0)) throw new RangeError('"length" is outside of buffer boM unds'); var i; i = void 0 === e && void 0 === n ? new Uint8Array(t) : void 0 === n ? new Uint8Array(t, e) : new Uint8Array(t, e, n); return i.__proto__ = r.prototype, i }(t, e, n); if ("number" == typeof t) throw new TypeError('The "value" argument must not be of type number. Received type number'); var i = t.valueOf && t.valueOf(); if (null != i && i !== t) return r.from(i, e, n); var o = function (t) { if (r.isBuffer(t)) { var e = 0 | c(t.length), n = f(e); return 0 === n.length ? n : (t.copy(n, 0, 0, e), n) } ifM (void 0 !== t.length) return "number" != typeof t.length || F(t.length) ? f(0) : a(t); if ("Buffer" === t.type && Array.isArray(t.data)) return a(t.data) }(t); if (o) return o; if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t[Symbol.toPrimitive]) return r.from(t[Symbol.toPrimitive]("string"), e, n); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t) } function s(t) { if ("number" !M = typeof t) throw new TypeError('"size" argument must be of type number'); if (t < 0) throw new RangeError('The value "' + t + '" is invalid for option "size"') } function h(t) { return s(t), f(t < 0 ? 0 : 0 | c(t)) } function a(t) { for (var r = t.length < 0 ? 0 : 0 | c(t.length), e = f(r), n = 0; n < r; n += 1)e[n] = 255 & t[n]; return e } function c(t) { if (t >= o) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + o.toString(16) + " bytes"); return 0 | t } function p(t, e) { if (rM .isBuffer(t)) return t.length; if (ArrayBuffer.isView(t) || j(t, ArrayBuffer)) return t.byteLength; if ("string" != typeof t) throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t); var n = t.length, i = arguments.length > 2 && !0 === arguments[2]; if (!i && 0 === n) return 0; for (var o = !1; ;)switch (e) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": return P(t).length; case "ucs2": case "ucs-2": case "utf16le"M : case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return k(t).length; default: if (o) return i ? -1 : P(t).length; e = ("" + e).toLowerCase(), o = !0 } } function l(t, r, e) { var n = t[r]; t[r] = t[e], t[e] = n } function y(t, e, n, i, o) { if (0 === t.length) return -1; if ("string" == typeof n ? (i = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), F(n = +n) && (n = o ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) { if (o) return -1; M n = t.length - 1 } else if (n < 0) { if (!o) return -1; n = 0 } if ("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e)) return 0 === e.length ? -1 : g(t, e, n, i, o); if ("number" == typeof e) return e &= 255, "function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : g(t, [e], n, i, o); throw new TypeError("val must be string, number or Buffer") } function g(t, r, e, n, i) { var o, f = 1, u = t.length, s = r.length; iM f (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) { if (t.length < 2 || r.length < 2) return -1; f = 2, u /= 2, s /= 2, e /= 2 } function h(t, r) { return 1 === f ? t[r] : t.readUInt16BE(r * f) } if (i) { var a = -1; for (o = e; o < u; o++)if (h(t, o) === h(r, -1 === a ? 0 : o - a)) { if (-1 === a && (a = o), o - a + 1 === s) return a * f } else -1 !== a && (o -= o - a), a = -1 } else for (e + s > u && (e = u - s), o = e; o >= 0; o--) { for (var cM = !0, p = 0; p < s; p++)if (h(t, o + p) !== h(r, p)) { c = !1; break } if (c) return o } return -1 } function w(t, r, e, n) { e = Number(e) || 0; var i = t.length - e; n ? (n = Number(n)) > i && (n = i) : n = i; var o = r.length; n > o / 2 && (n = o / 2); for (var f = 0; f < n; ++f) { var u = parseInt(r.substr(2 * f, 2), 16); if (F(u)) return f; t[e + f] = u } return f } function d(t, r, e, n) { return $(P(r, t.length - e), t, e, n) } function b(t, r, e, n) { return $(function (t) { for (var r = [], e = 0; e < t.lM ength; ++e)r.push(255 & t.charCodeAt(e)); return r }(r), t, e, n) } function m(t, r, e, n) { return b(t, r, e, n) } function E(t, r, e, n) { return $(k(r), t, e, n) } function v(t, r, e, n) { return $(function (t, r) { for (var e, n, i, o = [], f = 0; f < t.length && !((r -= 2) < 0); ++f)e = t.charCodeAt(f), n = e >> 8, i = e % 256, o.push(i), o.push(n); return o }(r, t.length - e), t, e, n) } function B(t, r, e) { return 0 === r && e === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(r, e)) } function A(tM , r, e) { e = Math.min(t.length, e); for (var n = [], i = r; i < e;) { var o, f, u, s, h = t[i], a = null, c = h > 239 ? 4 : h > 223 ? 3 : h > 191 ? 2 : 1; if (i + c <= e) switch (c) { case 1: h < 128 && (a = h); break; case 2: 128 == (192 & (o = t[i + 1])) && (s = (31 & h) << 6 | 63 & o) > 127 && (a = s); break; case 3: o = t[i + 1], f = t[i + 2], 128 == (192 & o) && 128 == (192 & f) && (s = (15 & h) << 12 | (63 & o) << 6 | 63 & f) > 2047 && (s < 55296 || s > 57343) && (a = s); break; case 4: o = t[i + 1], f = t[iM + 2], u = t[i + 3], 128 == (192 & o) && 128 == (192 & f) && 128 == (192 & u) && (s = (15 & h) << 18 | (63 & o) << 12 | (63 & f) << 6 | 63 & u) > 65535 && s < 1114112 && (a = s) }null === a ? (a = 65533, c = 1) : a > 65535 && (a -= 65536, n.push(a >>> 10 & 1023 | 55296), a = 56320 | 1023 & a), n.push(a), i += c } return function (t) { var r = t.length; if (r <= I) return String.fromCharCode.apply(String, t); var e = "", n = 0; for (; n < r;)e += String.fromCharCode.apply(String, t.slice(n, n += I)); return e }(n) }M e.kMaxLength = o, r.TYPED_ARRAY_SUPPORT = function () { try { var t = new Uint8Array(1); return t.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === t.foo() } catch (t) { return !1 } }(), r.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(r.prototype, "paM rent", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.buffer } }), Object.defineProperty(r.prototype, "offset", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.byteOffset } }), "undefined" != typeof Symbol && null != Symbol.species && r[Symbol.species] === r && Object.defineProperty(r, Symbol.species, { value: null, configurable: !0, enumerable: !1, writable: !1 }), r.poolSize = 8192, r.from = function (t, r, e) { return u(t, r, e) }, r.prototype.__proto__ = Uint8ArrayM .prototype, r.__proto__ = Uint8Array, r.alloc = function (t, r, e) { return function (t, r, e) { return s(t), t <= 0 ? f(t) : void 0 !== r ? "string" == typeof e ? f(t).fill(r, e) : f(t).fill(r) : f(t) }(t, r, e) }, r.allocUnsafe = function (t) { return h(t) }, r.allocUnsafeSlow = function (t) { return h(t) }, r.isBuffer = function (t) { return null != t && !0 === t._isBuffer && t !== r.prototype }, r.compare = function (t, e) { if (j(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), j(e, Uint8Array) && (eM = r.from(e, e.offset, e.byteLength)), !r.isBuffer(t) || !r.isBuffer(e)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (t === e) return 0; for (var n = t.length, i = e.length, o = 0, f = Math.min(n, i); o < f; ++o)if (t[o] !== e[o]) { n = t[o], i = e[o]; break } return n < i ? -1 : i < n ? 1 : 0 }, r.isEncoding = function (t) { switch (String(t).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "M ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, r.concat = function (t, e) { if (!Array.isArray(t)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === t.length) return r.alloc(0); var n; if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n)e += t[n].length; var i = r.allocUnsafe(e), o = 0; for (n = 0; n < t.length; ++n) { var f = t[n]; if (j(f, Uint8Array) && (f = r.from(f)), !r.isBuffer(f)) throw new TypeError('"list" argument must be an Array oM f Buffers'); f.copy(i, o), o += f.length } return i }, r.byteLength = p, r.prototype._isBuffer = !0, r.prototype.swap16 = function () { var t = this.length; if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var r = 0; r < t; r += 2)l(this, r, r + 1); return this }, r.prototype.swap32 = function () { var t = this.length; if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var r = 0; r < t; r += 4)l(this, r, r + 3), l(this, r + 1, r + 2); returM n this }, r.prototype.swap64 = function () { var t = this.length; if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var r = 0; r < t; r += 8)l(this, r, r + 7), l(this, r + 1, r + 6), l(this, r + 2, r + 5), l(this, r + 3, r + 4); return this }, r.prototype.toString = function () { var t = this.length; return 0 === t ? "" : 0 === arguments.length ? A(this, 0, t) : function (t, r, e) { var n = !1; if ((void 0 === r || r < 0) && (r = 0), r > this.length) return ""; if ((void 0 === M e || e > this.length) && (e = this.length), e <= 0) return ""; if ((e >>>= 0) <= (r >>>= 0)) return ""; for (t || (t = "utf8"); ;)switch (t) { case "hex": return T(this, r, e); case "utf8": case "utf-8": return A(this, r, e); case "ascii": return U(this, r, e); case "latin1": case "binary": return R(this, r, e); case "base64": return B(this, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return _(this, r, e); default: if (n) throw new TypeError("Unknown encoding: " + t); t = (t + "").toLowerCaseM (), n = !0 } }.apply(this, arguments) }, r.prototype.toLocaleString = r.prototype.toString, r.prototype.equals = function (t) { if (!r.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); return this === t || 0 === r.compare(this, t) }, r.prototype.inspect = function () { var t = "", r = e.INSPECT_MAX_BYTES; return t = this.toString("hex", 0, r).replace(/(.{2})/g, "$1 ").trim(), this.length > r && (t += " ... "), "<Buffer " + t + ">" }, r.prototype.compare = function (t, e, n, i, o) { if (j(t, Uint8Array)M && (t = r.from(t, t.offset, t.byteLength)), !r.isBuffer(t)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t); if (void 0 === e && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === i && (i = 0), void 0 === o && (o = this.length), e < 0 || n > t.length || i < 0 || o > this.length) throw new RangeError("out of range index"); if (i >= o && e >= n) return 0; if (i >= o) return -1; if (e >= n) return 1; if (this === t) return 0; for (var f = (o >>M >= 0) - (i >>>= 0), u = (n >>>= 0) - (e >>>= 0), s = Math.min(f, u), h = this.slice(i, o), a = t.slice(e, n), c = 0; c < s; ++c)if (h[c] !== a[c]) { f = h[c], u = a[c]; break } return f < u ? -1 : u < f ? 1 : 0 }, r.prototype.includes = function (t, r, e) { return -1 !== this.indexOf(t, r, e) }, r.prototype.indexOf = function (t, r, e) { return y(this, t, r, e, !0) }, r.prototype.lastIndexOf = function (t, r, e) { return y(this, t, r, e, !1) }, r.prototype.write = function (t, r, e, n) { if (void 0 === r) n = "utf8M ", e = this.length, r = 0; else if (void 0 === e && "string" == typeof r) n = r, e = this.length, r = 0; else { if (!isFinite(r)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); r >>>= 0, isFinite(e) ? (e >>>= 0, void 0 === n && (n = "utf8")) : (n = e, e = void 0) } var i = this.length - r; if ((void 0 === e || e > i) && (e = i), t.length > 0 && (e < 0 || r < 0) || r > this.length) throw new RangeError("Attempt to write outside buffer bounds"); n || (n = "utf8"); for (varM o = !1; ;)switch (n) { case "hex": return w(this, t, r, e); case "utf8": case "utf-8": return d(this, t, r, e); case "ascii": return b(this, t, r, e); case "latin1": case "binary": return m(this, t, r, e); case "base64": return E(this, t, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return v(this, t, r, e); default: if (o) throw new TypeError("Unknown encoding: " + n); n = ("" + n).toLowerCase(), o = !0 } }, r.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.sliM ce.call(this._arr || this, 0) } }; var I = 4096; function U(t, r, e) { var n = ""; e = Math.min(t.length, e); for (var i = r; i < e; ++i)n += String.fromCharCode(127 & t[i]); return n } function R(t, r, e) { var n = ""; e = Math.min(t.length, e); for (var i = r; i < e; ++i)n += String.fromCharCode(t[i]); return n } function T(t, r, e) { var n = t.length; (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); for (var i = "", o = r; o < e; ++o)i += N(t[o]); return i } function _(t, r, e) { for (var n = t.sliceM (r, e), i = "", o = 0; o < n.length; o += 2)i += String.fromCharCode(n[o] + 256 * n[o + 1]); return i } function L(t, r, e) { if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint"); if (t + r > e) throw new RangeError("Trying to access beyond buffer length") } function S(t, e, n, i, o, f) { if (!r.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (e > o || e < f) throw new RangeError('"value" argument is out of bounds'); if (n + i > t.length) throw new RangeError("IndeM x out of range") } function O(t, r, e, n, i, o) { if (e + n > t.length) throw new RangeError("Index out of range"); if (e < 0) throw new RangeError("Index out of range") } function C(t, r, e, n, o) { return r = +r, e >>>= 0, o || O(t, 0, e, 4), i.write(t, r, e, n, 23, 4), e + 4 } function x(t, r, e, n, o) { return r = +r, e >>>= 0, o || O(t, 0, e, 8), i.write(t, r, e, n, 52, 8), e + 8 } r.prototype.slice = function (t, e) { var n = this.length; (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e = void 0M === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t && (e = t); var i = this.subarray(t, e); return i.__proto__ = r.prototype, i }, r.prototype.readUIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256);)n += this[t + o] * i; return n }, r.prototype.readUIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t + --r], i = 1; r > 0 && (i *= 256);)n += this[t + --r] * i; return M n }, r.prototype.readUInt8 = function (t, r) { return t >>>= 0, r || L(t, 1, this.length), this[t] }, r.prototype.readUInt16LE = function (t, r) { return t >>>= 0, r || L(t, 2, this.length), this[t] | this[t + 1] << 8 }, r.prototype.readUInt16BE = function (t, r) { return t >>>= 0, r || L(t, 2, this.length), this[t] << 8 | this[t + 1] }, r.prototype.readUInt32LE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3] }, r.prototype.reM adUInt32BE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]) }, r.prototype.readIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256);)n += this[t + o] * i; return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n }, r.prototype.readIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = r, i = 1, o = this[t + --n]; n >M 0 && (i *= 256);)o += this[t + --n] * i; return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o }, r.prototype.readInt8 = function (t, r) { return t >>>= 0, r || L(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] }, r.prototype.readInt16LE = function (t, r) { t >>>= 0, r || L(t, 2, this.length); var e = this[t] | this[t + 1] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt16BE = function (t, r) { t >>>= 0, r || L(t, 2, this.length); var e = this[t + 1] | this[t] << 8; returnM 32768 & e ? 4294901760 | e : e }, r.prototype.readInt32LE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24 }, r.prototype.readInt32BE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3] }, r.prototype.readFloatLE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), i.read(this, t, !0, 23, 4) }, r.prototype.readFloatBE = function (t, r) { return M t >>>= 0, r || L(t, 4, this.length), i.read(this, t, !1, 23, 4) }, r.prototype.readDoubleLE = function (t, r) { return t >>>= 0, r || L(t, 8, this.length), i.read(this, t, !0, 52, 8) }, r.prototype.readDoubleBE = function (t, r) { return t >>>= 0, r || L(t, 8, this.length), i.read(this, t, !1, 52, 8) }, r.prototype.writeUIntLE = function (t, r, e, n) { (t = +t, r >>>= 0, e >>>= 0, n) || S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); var i = 1, o = 0; for (this[r] = 255 & t; ++o < e && (i *= 256);)this[r + o] = t / i M & 255; return r + e }, r.prototype.writeUIntBE = function (t, r, e, n) { (t = +t, r >>>= 0, e >>>= 0, n) || S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); var i = e - 1, o = 1; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)this[r + i] = t / o & 255; return r + e }, r.prototype.writeUInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 1, 255, 0), this[r] = 255 & t, r + 1 }, r.prototype.writeUInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 65535, 0), this[r] = 255M & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeUInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 65535, 0), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeUInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 4294967295, 0), this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = 255 & t, r + 4 }, r.prototype.writeUInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 4294967295, 0), tM his[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeIntLE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { var i = Math.pow(2, 8 * e - 1); S(this, t, r, e, i - 1, -i) } var o = 0, f = 1, u = 0; for (this[r] = 255 & t; ++o < e && (f *= 256);)t < 0 && 0 === u && 0 !== this[r + o - 1] && (u = 1), this[r + o] = (t / f >> 0) - u & 255; return r + e }, r.prototype.writeIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { var i = Math.pow(2, 8 * e M - 1); S(this, t, r, e, i - 1, -i) } var o = e - 1, f = 1, u = 0; for (this[r + o] = 255 & t; --o >= 0 && (f *= 256);)t < 0 && 0 === u && 0 !== this[r + o + 1] && (u = 1), this[r + o] = (t / f >> 0) - u & 255; return r + e }, r.prototype.writeInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 1, 127, -128), t < 0 && (t = 255 + t + 1), this[r] = 255 & t, r + 1 }, r.prototype.writeInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 32767, -32768), this[r] = 255 & t, this[M r + 1] = t >>> 8, r + 2 }, r.prototype.writeInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 32767, -32768), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 2147483647, -2147483648), this[r] = 255 & t, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24, r + 4 }, r.prototype.writeInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 2147483647, -214M 7483648), t < 0 && (t = 4294967295 + t + 1), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeFloatLE = function (t, r, e) { return C(this, t, r, !0, e) }, r.prototype.writeFloatBE = function (t, r, e) { return C(this, t, r, !1, e) }, r.prototype.writeDoubleLE = function (t, r, e) { return x(this, t, r, !0, e) }, r.prototype.writeDoubleBE = function (t, r, e) { return x(this, t, r, !1, e) }, r.prototype.copy = function (t, e, n, i) { if (!r.isBufferM (t)) throw new TypeError("argument should be a Buffer"); if (n || (n = 0), i || 0 === i || (i = this.length), e >= t.length && (e = t.length), e || (e = 0), i > 0 && i < n && (i = n), i === n) return 0; if (0 === t.length || 0 === this.length) return 0; if (e < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RangeError("Index out of range"); if (i < 0) throw new RangeError("sourceEnd out of bounds"); i > this.length && (i = this.length), t.length - e < i - n && (i = t.M length - e + n); var o = i - n; if (this === t && "function" == typeof Uint8Array.prototype.copyWithin) this.copyWithin(e, n, i); else if (this === t && n < e && e < i) for (var f = o - 1; f >= 0; --f)t[f + e] = this[f + n]; else Uint8Array.prototype.set.call(t, this.subarray(n, i), e); return o }, r.prototype.fill = function (t, e, n, i) { if ("string" == typeof t) { if ("string" == typeof e ? (i = e, e = 0, n = this.length) : "string" == typeof n && (i = n, n = this.length), void 0 !== i && "string" != typeof i) M throw new TypeError("encoding must be a string"); if ("string" == typeof i && !r.isEncoding(i)) throw new TypeError("Unknown encoding: " + i); if (1 === t.length) { var o = t.charCodeAt(0); ("utf8" === i && o < 128 || "latin1" === i) && (t = o) } } else "number" == typeof t && (t &= 255); if (e < 0 || this.length < e || this.length < n) throw new RangeError("Out of range index"); if (n <= e) return this; var f; if (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), "number" == typeof t) for (f = e; fM < n; ++f)this[f] = t; else { var u = r.isBuffer(t) ? t : r.from(t, i), s = u.length; if (0 === s) throw new TypeError('The value "' + t + '" is invalid for argument "value"'); for (f = 0; f < n - e; ++f)this[f + e] = u[f % s] } return this }; var M = /[^+\/0-9A-Za-z-_]/g; function N(t) { return t < 16 ? "0" + t.toString(16) : t.toString(16) } function P(t, r) { var e; r = r || 1 / 0; for (var n = t.length, i = null, o = [], f = 0; f < n; ++f) { if ((e = t.charCodeAt(f)) > 55295 && e < 57344) { if (!i) { if (e > 56M 319) { (r -= 3) > -1 && o.push(239, 191, 189); continue } if (f + 1 === n) { (r -= 3) > -1 && o.push(239, 191, 189); continue } i = e; continue } if (e < 56320) { (r -= 3) > -1 && o.push(239, 191, 189), i = e; continue } e = 65536 + (i - 55296 << 10 | e - 56320) } else i && (r -= 3) > -1 && o.push(239, 191, 189); if (i = null, e < 128) { if ((r -= 1) < 0) break; o.push(e) } else if (e < 2048) { if ((r -= 2) < 0) break; o.push(e >> 6 | 192, 63 & e | 128) } else if (e < 65536) { if ((r -= 3) < 0) break; o.push(e >> 1M 2 | 224, e >> 6 & 63 | 128, 63 & e | 128) } else { if (!(e < 1114112)) throw new Error("Invalid code point"); if ((r -= 4) < 0) break; o.push(e >> 18 | 240, e >> 12 & 63 | 128, e >> 6 & 63 | 128, 63 & e | 128) } } return o } function k(t) { return n.toByteArray(function (t) { if ((t = (t = t.split("=")[0]).trim().replace(M, "")).length < 2) return ""; for (; t.length % 4 != 0;)t += "="; return t }(t)) } function $(t, r, e, n) { for (var i = 0; i < n && !(i + e >= r.length || i >= t.length); ++i)r[i + e] = t[i]; retM urn i } function j(t, r) { return t instanceof r || null != t && null != t.constructor && null != t.constructor.name && t.constructor.name === r.name } function F(t) { return t != t } }).call(this, t("buffer").Buffer) }, { "base64-js": 1, buffer: 2, ieee754: 3 }], 3: [function (t, r, e) { e.read = function (t, r, e, n, i) { var o, f, u = 8 * i - n - 1, s = (1 << u) - 1, h = s >> 1, a = -7, c = e ? i - 1 : 0, p = e ? -1 : 1, l = t[r + c]; for (c += p, o = l & (1 << -a) - 1, l >>= -a, a += u; a > 0; o = 256 * o + t[rM + c], c += p, a -= 8); for (f = o & (1 << -a) - 1, o >>= -a, a += n; a > 0; f = 256 * f + t[r + c], c += p, a -= 8); if (0 === o) o = 1 - h; else { if (o === s) return f ? NaN : 1 / 0 * (l ? -1 : 1); f += Math.pow(2, n), o -= h } return (l ? -1 : 1) * f * Math.pow(2, o - n) }, e.write = function (t, r, e, n, i, o) { var f, u, s, h = 8 * o - i - 1, a = (1 << h) - 1, c = a >> 1, p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, l = n ? 0 : o - 1, y = n ? 1 : -1, g = r < 0 || 0 === r && 1 / r < 0 ? 1 : 0; for (M r = Math.abs(r), isNaN(r) || r === 1 / 0 ? (u = isNaN(r) ? 1 : 0, f = a) : (f = Math.floor(Math.log(r) / Math.LN2), r * (s = Math.pow(2, -f)) < 1 && (f--, s *= 2), (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= 2 && (f++, s /= 2), f + c >= a ? (u = 0, f = a) : f + c >= 1 ? (u = (r * s - 1) * Math.pow(2, i), f += c) : (u = r * Math.pow(2, c - 1) * Math.pow(2, i), f = 0)); i >= 8; t[e + l] = 255 & u, l += y, u /= 256, i -= 8); for (f = f << i | u, h += i; h > 0; t[e + l] = 255 & f, l += y, f /= 256, h -= 8M ); t[e + l - y] |= 128 * g } }, {}], 4: [function (t, r, e) { (function (r) { "use strict"; const n = t("base64-js"), i = t("ieee754"), o = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null; e.Buffer = r, e.SlowBuffer = function (t) { +t != t && (t = 0); return r.alloc(+t) }, e.INSPECT_MAX_BYTES = 50; const f = 2147483647; function u(t) { if (t > f) throw new RangeError('The value "' + t + '" is invalid for option "size"'); const e = new Uint8Array(t); M return Object.setPrototypeOf(e, r.prototype), e } function r(t, r, e) { if ("number" == typeof t) { if ("string" == typeof r) throw new TypeError('The "string" argument must be of type string. Received type number'); return a(t) } return s(t, r, e) } function s(t, e, n) { if ("string" == typeof t) return function (t, e) { "string" == typeof e && "" !== e || (e = "utf8"); if (!r.isEncoding(e)) throw new TypeError("Unknown encoding: " + e); const n = 0 | y(t, e); let i = u(n); const o = i.write(t, e); o !== n && (i =M i.slice(0, o)); return i }(t, e); if (ArrayBuffer.isView(t)) return function (t) { if (W(t, Uint8Array)) { const r = new Uint8Array(t); return p(r.buffer, r.byteOffset, r.byteLength) } return c(t) }(t); if (null == t) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t); if (W(t, ArrayBuffer) || t && W(t.buffer, ArrayBuffer)) return p(t, e, n); if ("undefined" != typeof SharedArrayBuffer && (W(t, SharedArrayBuffer) || t &&M W(t.buffer, SharedArrayBuffer))) return p(t, e, n); if ("number" == typeof t) throw new TypeError('The "value" argument must not be of type number. Received type number'); const i = t.valueOf && t.valueOf(); if (null != i && i !== t) return r.from(i, e, n); const o = function (t) { if (r.isBuffer(t)) { const r = 0 | l(t.length), e = u(r); return 0 === e.length ? e : (t.copy(e, 0, 0, r), e) } if (void 0 !== t.length) return "number" != typeof t.length || X(t.length) ? u(0) : c(t); if ("Buffer" === t.type && Array.iM sArray(t.data)) return c(t.data) }(t); if (o) return o; if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t[Symbol.toPrimitive]) return r.from(t[Symbol.toPrimitive]("string"), e, n); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t) } function h(t) { if ("number" != typeof t) throw new TypeError('"size" argument must be of type number'); if (t < 0) throw new RangeError('The value "' +M t + '" is invalid for option "size"') } function a(t) { return h(t), u(t < 0 ? 0 : 0 | l(t)) } function c(t) { const r = t.length < 0 ? 0 : 0 | l(t.length), e = u(r); for (let n = 0; n < r; n += 1)e[n] = 255 & t[n]; return e } function p(t, e, n) { if (e < 0 || t.byteLength < e) throw new RangeError('"offset" is outside of buffer bounds'); if (t.byteLength < e + (n || 0)) throw new RangeError('"length" is outside of buffer bounds'); let i; return i = void 0 === e && void 0 === n ? new Uint8Array(t) : void 0 === n M ? new Uint8Array(t, e) : new Uint8Array(t, e, n), Object.setPrototypeOf(i, r.prototype), i } function l(t) { if (t >= f) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + f.toString(16) + " bytes"); return 0 | t } function y(t, e) { if (r.isBuffer(t)) return t.length; if (ArrayBuffer.isView(t) || W(t, ArrayBuffer)) return t.byteLength; if ("string" != typeof t) throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t); cM onst n = t.length, i = arguments.length > 2 && !0 === arguments[2]; if (!i && 0 === n) return 0; let o = !1; for (; ;)switch (e) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": return q(t).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return G(t).length; default: if (o) return i ? -1 : q(t).length; e = ("" + e).toLowerCase(), o = !0 } } function g(t, r, e) { const n = t[r]; t[r] = t[e], t[e] = n } functM ion w(t, e, n, i, o) { if (0 === t.length) return -1; if ("string" == typeof n ? (i = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), X(n = +n) && (n = o ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) { if (o) return -1; n = t.length - 1 } else if (n < 0) { if (!o) return -1; n = 0 } if ("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e)) return 0 === e.length ? -1 : d(t, e, n, i, o); if ("number" == typeof e) return e &= 255, "function" == typeof Uint8ArM ray.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : d(t, [e], n, i, o); throw new TypeError("val must be string, number or Buffer") } function d(t, r, e, n, i) { let o, f = 1, u = t.length, s = r.length; if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) { if (t.length < 2 || r.length < 2) return -1; f = 2, u /= 2, s /= 2, e /= 2 } function h(t, r) { return 1 === f ? t[r] : t.reM adUInt16BE(r * f) } if (i) { let n = -1; for (o = e; o < u; o++)if (h(t, o) === h(r, -1 === n ? 0 : o - n)) { if (-1 === n && (n = o), o - n + 1 === s) return n * f } else -1 !== n && (o -= o - n), n = -1 } else for (e + s > u && (e = u - s), o = e; o >= 0; o--) { let e = !0; for (let n = 0; n < s; n++)if (h(t, o + n) !== h(r, n)) { e = !1; break } if (e) return o } return -1 } function b(t, r, e, n) { e = Number(e) || 0; const i = t.length - e; n ? (n = Number(n)) > i && (n = i) : n = i; const o = r.length; let f;M for (n > o / 2 && (n = o / 2), f = 0; f < n; ++f) { const n = parseInt(r.substr(2 * f, 2), 16); if (X(n)) return f; t[e + f] = n } return f } function m(t, r, e, n) { return V(q(r, t.length - e), t, e, n) } function E(t, r, e, n) { return V(function (t) { const r = []; for (let e = 0; e < t.length; ++e)r.push(255 & t.charCodeAt(e)); return r }(r), t, e, n) } function v(t, r, e, n) { return V(G(r), t, e, n) } function B(t, r, e, n) { return V(function (t, r) { let e, n, i; const o = []; for (let f = 0; f < t.lengthM && !((r -= 2) < 0); ++f)e = t.charCodeAt(f), n = e >> 8, i = e % 256, o.push(i), o.push(n); return o }(r, t.length - e), t, e, n) } function A(t, r, e) { return 0 === r && e === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(r, e)) } function I(t, r, e) { e = Math.min(t.length, e); const n = []; let i = r; for (; i < e;) { const r = t[i]; let o = null, f = r > 239 ? 4 : r > 223 ? 3 : r > 191 ? 2 : 1; if (i + f <= e) { let e, n, u, s; switch (f) { case 1: r < 128 && (o = r); break; case 2: 128 == (192 & (eM = t[i + 1])) && (s = (31 & r) << 6 | 63 & e) > 127 && (o = s); break; case 3: e = t[i + 1], n = t[i + 2], 128 == (192 & e) && 128 == (192 & n) && (s = (15 & r) << 12 | (63 & e) << 6 | 63 & n) > 2047 && (s < 55296 || s > 57343) && (o = s); break; case 4: e = t[i + 1], n = t[i + 2], u = t[i + 3], 128 == (192 & e) && 128 == (192 & n) && 128 == (192 & u) && (s = (15 & r) << 18 | (63 & e) << 12 | (63 & n) << 6 | 63 & u) > 65535 && s < 1114112 && (o = s) } } null === o ? (o = 65533, f = 1) : o > 65535 && (o -= 65536, n.M push(o >>> 10 & 1023 | 55296), o = 56320 | 1023 & o), n.push(o), i += f } return function (t) { const r = t.length; if (r <= U) return String.fromCharCode.apply(String, t); let e = "", n = 0; for (; n < r;)e += String.fromCharCode.apply(String, t.slice(n, n += U)); return e }(n) } e.kMaxLength = f, r.TYPED_ARRAY_SUPPORT = function () { try { const t = new Uint8Array(1), r = { foo: function () { return 42 } }; return Object.setPrototypeOf(r, Uint8Array.prototype), Object.setPrototypeOf(t, r), 42 === t.foo() } catch M (t) { return !1 } }(), r.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(r.prototype, "parent", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.buffer } }), Object.defineProperty(r.prototype, "offset", { enumerable: !0, get: function () { if (r.isBuffer(this)) return tM his.byteOffset } }), r.poolSize = 8192, r.from = function (t, r, e) { return s(t, r, e) }, Object.setPrototypeOf(r.prototype, Uint8Array.prototype), Object.setPrototypeOf(r, Uint8Array), r.alloc = function (t, r, e) { return function (t, r, e) { return h(t), t <= 0 ? u(t) : void 0 !== r ? "string" == typeof e ? u(t).fill(r, e) : u(t).fill(r) : u(t) }(t, r, e) }, r.allocUnsafe = function (t) { return a(t) }, r.allocUnsafeSlow = function (t) { return a(t) }, r.isBuffer = function (t) { return null != t && !0 === t._iM sBuffer && t !== r.prototype }, r.compare = function (t, e) { if (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), W(e, Uint8Array) && (e = r.from(e, e.offset, e.byteLength)), !r.isBuffer(t) || !r.isBuffer(e)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (t === e) return 0; let n = t.length, i = e.length; for (let r = 0, o = Math.min(n, i); r < o; ++r)if (t[r] !== e[r]) { n = t[r], i = e[r]; break } return n < i ? -1 : i < n ? 1 : 0 }, r.isEncoding = fM unction (t) { switch (String(t).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, r.concat = function (t, e) { if (!Array.isArray(t)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === t.length) return r.alloc(0); let n; if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n)e += t[n].length; const i = r.allocUnsafe(e); let o = 0; M for (n = 0; n < t.length; ++n) { let e = t[n]; if (W(e, Uint8Array)) o + e.length > i.length ? (r.isBuffer(e) || (e = r.from(e)), e.copy(i, o)) : Uint8Array.prototype.set.call(i, e, o); else { if (!r.isBuffer(e)) throw new TypeError('"list" argument must be an Array of Buffers'); e.copy(i, o) } o += e.length } return i }, r.byteLength = y, r.prototype._isBuffer = !0, r.prototype.swap16 = function () { const t = this.length; if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (let M r = 0; r < t; r += 2)g(this, r, r + 1); return this }, r.prototype.swap32 = function () { const t = this.length; if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (let r = 0; r < t; r += 4)g(this, r, r + 3), g(this, r + 1, r + 2); return this }, r.prototype.swap64 = function () { const t = this.length; if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (let r = 0; r < t; r += 8)g(this, r, r + 7), g(this, r + 1, r + 6), g(this, r + 2, r + 5), gM (this, r + 3, r + 4); return this }, r.prototype.toString = function () { const t = this.length; return 0 === t ? "" : 0 === arguments.length ? I(this, 0, t) : function (t, r, e) { let n = !1; if ((void 0 === r || r < 0) && (r = 0), r > this.length) return ""; if ((void 0 === e || e > this.length) && (e = this.length), e <= 0) return ""; if ((e >>>= 0) <= (r >>>= 0)) return ""; for (t || (t = "utf8"); ;)switch (t) { case "hex": return _(this, r, e); case "utf8": case "utf-8": return I(this, r, e); case "ascii": retM urn R(this, r, e); case "latin1": case "binary": return T(this, r, e); case "base64": return A(this, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return L(this, r, e); default: if (n) throw new TypeError("Unknown encoding: " + t); t = (t + "").toLowerCase(), n = !0 } }.apply(this, arguments) }, r.prototype.toLocaleString = r.prototype.toString, r.prototype.equals = function (t) { if (!r.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); return this === t || 0 === r.compare(this, t)M }, r.prototype.inspect = function () { let t = ""; const r = e.INSPECT_MAX_BYTES; return t = this.toString("hex", 0, r).replace(/(.{2})/g, "$1 ").trim(), this.length > r && (t += " ... "), "<Buffer " + t + ">" }, o && (r.prototype[o] = r.prototype.inspect), r.prototype.compare = function (t, e, n, i, o) { if (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), !r.isBuffer(t)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t); if (void 0 === e M && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === i && (i = 0), void 0 === o && (o = this.length), e < 0 || n > t.length || i < 0 || o > this.length) throw new RangeError("out of range index"); if (i >= o && e >= n) return 0; if (i >= o) return -1; if (e >= n) return 1; if (this === t) return 0; let f = (o >>>= 0) - (i >>>= 0), u = (n >>>= 0) - (e >>>= 0); const s = Math.min(f, u), h = this.slice(i, o), a = t.slice(e, n); for (let t = 0; t < s; ++t)if (h[t] !== a[t]) { f = h[t], u = a[t]; break } returM n f < u ? -1 : u < f ? 1 : 0 }, r.prototype.includes = function (t, r, e) { return -1 !== this.indexOf(t, r, e) }, r.prototype.indexOf = function (t, r, e) { return w(this, t, r, e, !0) }, r.prototype.lastIndexOf = function (t, r, e) { return w(this, t, r, e, !1) }, r.prototype.write = function (t, r, e, n) { if (void 0 === r) n = "utf8", e = this.length, r = 0; else if (void 0 === e && "string" == typeof r) n = r, e = this.length, r = 0; else { if (!isFinite(r)) throw new Error("Buffer.write(string, encoding, offsM et[, length]) is no longer supported"); r >>>= 0, isFinite(e) ? (e >>>= 0, void 0 === n && (n = "utf8")) : (n = e, e = void 0) } const i = this.length - r; if ((void 0 === e || e > i) && (e = i), t.length > 0 && (e < 0 || r < 0) || r > this.length) throw new RangeError("Attempt to write outside buffer bounds"); n || (n = "utf8"); let o = !1; for (; ;)switch (n) { case "hex": return b(this, t, r, e); case "utf8": case "utf-8": return m(this, t, r, e); case "ascii": case "latin1": case "binary": return E(this, t, r, M e); case "base64": return v(this, t, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return B(this, t, r, e); default: if (o) throw new TypeError("Unknown encoding: " + n); n = ("" + n).toLowerCase(), o = !0 } }, r.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; const U = 4096; function R(t, r, e) { let n = ""; e = Math.min(t.length, e); for (let i = r; i < e; ++i)n += String.fromCharCode(127 & t[i]); return n } function T(t, rM , e) { let n = ""; e = Math.min(t.length, e); for (let i = r; i < e; ++i)n += String.fromCharCode(t[i]); return n } function _(t, r, e) { const n = t.length; (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); let i = ""; for (let n = r; n < e; ++n)i += J[t[n]]; return i } function L(t, r, e) { const n = t.slice(r, e); let i = ""; for (let t = 0; t < n.length - 1; t += 2)i += String.fromCharCode(n[t] + 256 * n[t + 1]); return i } function S(t, r, e) { if (t % 1 != 0 || t < 0) throw new RangeError("offset iM s not uint"); if (t + r > e) throw new RangeError("Trying to access beyond buffer length") } function O(t, e, n, i, o, f) { if (!r.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (e > o || e < f) throw new RangeError('"value" argument is out of bounds'); if (n + i > t.length) throw new RangeError("Index out of range") } function C(t, r, e, n, i) { F(r, n, i, t, e, 7); let o = Number(r & BigInt(4294967295)); t[e++] = o, o >>= 8, t[e++] = o, o >>= 8, t[e++] = o, o >>= 8, t[e++] = oM ; let f = Number(r >> BigInt(32) & BigInt(4294967295)); return t[e++] = f, f >>= 8, t[e++] = f, f >>= 8, t[e++] = f, f >>= 8, t[e++] = f, e } function x(t, r, e, n, i) { F(r, n, i, t, e, 7); let o = Number(r & BigInt(4294967295)); t[e + 7] = o, o >>= 8, t[e + 6] = o, o >>= 8, t[e + 5] = o, o >>= 8, t[e + 4] = o; let f = Number(r >> BigInt(32) & BigInt(4294967295)); return t[e + 3] = f, f >>= 8, t[e + 2] = f, f >>= 8, t[e + 1] = f, f >>= 8, t[e] = f, e + 8 } function M(t, r, e, n, i, o) { if (e + n > t.length) throwM new RangeError("Index out of range"); if (e < 0) throw new RangeError("Index out of range") } function N(t, r, e, n, o) { return r = +r, e >>>= 0, o || M(t, 0, e, 4), i.write(t, r, e, n, 23, 4), e + 4 } function P(t, r, e, n, o) { return r = +r, e >>>= 0, o || M(t, 0, e, 8), i.write(t, r, e, n, 52, 8), e + 8 } r.prototype.slice = function (t, e) { const n = this.length; (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e = void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t &M & (e = t); const i = this.subarray(t, e); return Object.setPrototypeOf(i, r.prototype), i }, r.prototype.readUintLE = r.prototype.readUIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = this[t], i = 1, o = 0; for (; ++o < r && (i *= 256);)n += this[t + o] * i; return n }, r.prototype.readUintBE = r.prototype.readUIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = this[t + --r], i = 1; for (; r > 0 && (i *= 256);)n += this[t + --r] * i; return n }, r.M prototype.readUint8 = r.prototype.readUInt8 = function (t, r) { return t >>>= 0, r || S(t, 1, this.length), this[t] }, r.prototype.readUint16LE = r.prototype.readUInt16LE = function (t, r) { return t >>>= 0, r || S(t, 2, this.length), this[t] | this[t + 1] << 8 }, r.prototype.readUint16BE = r.prototype.readUInt16BE = function (t, r) { return t >>>= 0, r || S(t, 2, this.length), this[t] << 8 | this[t + 1] }, r.prototype.readUint32LE = r.prototype.readUInt32LE = function (t, r) { return t >>>= 0, r || S(t, 4, this.leM ngth), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3] }, r.prototype.readUint32BE = r.prototype.readUInt32BE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]) }, r.prototype.readBigUInt64LE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = r + 256 * this[++t] + 65536 * this[++t] + this[++t] * 2 ** 24, i = this[M ++t] + 256 * this[++t] + 65536 * this[++t] + e * 2 ** 24; return BigInt(n) + (BigInt(i) << BigInt(32)) }), r.prototype.readBigUInt64BE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = r * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + this[++t], i = this[++t] * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + e; return (BigInt(n) << BigInt(32)) + BigInt(i) }), r.prototype.readIntLE = function (t, r, e) { t >>>= 0, r >>>= 0M , e || S(t, r, this.length); let n = this[t], i = 1, o = 0; for (; ++o < r && (i *= 256);)n += this[t + o] * i; return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n }, r.prototype.readIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = r, i = 1, o = this[t + --n]; for (; n > 0 && (i *= 256);)o += this[t + --n] * i; return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o }, r.prototype.readInt8 = function (t, r) { return t >>>= 0, r || S(t, 1, this.length), 128 & this[t] ? -1 * (255 M - this[t] + 1) : this[t] }, r.prototype.readInt16LE = function (t, r) { t >>>= 0, r || S(t, 2, this.length); const e = this[t] | this[t + 1] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt16BE = function (t, r) { t >>>= 0, r || S(t, 2, this.length); const e = this[t + 1] | this[t] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt32LE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24 }, r.prototype.reM adInt32BE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3] }, r.prototype.readBigInt64LE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = this[t + 4] + 256 * this[t + 5] + 65536 * this[t + 6] + (e << 24); return (BigInt(n) << BigInt(32)) + BigInt(r + 256 * this[++t] + 65536 * this[++t] + this[++t] * 2 ** 24) }), r.prototype.readBigInt64BE = ZM (function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = (r << 24) + 65536 * this[++t] + 256 * this[++t] + this[++t]; return (BigInt(n) << BigInt(32)) + BigInt(this[++t] * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + e) }), r.prototype.readFloatLE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), i.read(this, t, !0, 23, 4) }, r.prototype.readFloatBE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), i.reM ad(this, t, !1, 23, 4) }, r.prototype.readDoubleLE = function (t, r) { return t >>>= 0, r || S(t, 8, this.length), i.read(this, t, !0, 52, 8) }, r.prototype.readDoubleBE = function (t, r) { return t >>>= 0, r || S(t, 8, this.length), i.read(this, t, !1, 52, 8) }, r.prototype.writeUintLE = r.prototype.writeUIntLE = function (t, r, e, n) { if (t = +t, r >>>= 0, e >>>= 0, !n) { O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0) } let i = 1, o = 0; for (this[r] = 255 & t; ++o < e && (i *= 256);)this[r + o] = t / i & 255; retuM rn r + e }, r.prototype.writeUintBE = r.prototype.writeUIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, e >>>= 0, !n) { O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0) } let i = e - 1, o = 1; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)this[r + i] = t / o & 255; return r + e }, r.prototype.writeUint8 = r.prototype.writeUInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 1, 255, 0), this[r] = 255 & t, r + 1 }, r.prototype.writeUint16LE = r.prototype.writeUInt16LE = function (t, r, e) {M return t = +t, r >>>= 0, e || O(this, t, r, 2, 65535, 0), this[r] = 255 & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeUint16BE = r.prototype.writeUInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 2, 65535, 0), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeUint32LE = r.prototype.writeUInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 4294967295, 0), this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = 255M & t, r + 4 }, r.prototype.writeUint32BE = r.prototype.writeUInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 4294967295, 0), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeBigUInt64LE = Z(function (t, r = 0) { return C(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")) }), r.prototype.writeBigUInt64BE = Z(function (t, r = 0) { return x(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")) }), r.prototype.writeIntLE =M function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { const n = Math.pow(2, 8 * e - 1); O(this, t, r, e, n - 1, -n) } let i = 0, o = 1, f = 0; for (this[r] = 255 & t; ++i < e && (o *= 256);)t < 0 && 0 === f && 0 !== this[r + i - 1] && (f = 1), this[r + i] = (t / o >> 0) - f & 255; return r + e }, r.prototype.writeIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { const n = Math.pow(2, 8 * e - 1); O(this, t, r, e, n - 1, -n) } let i = e - 1, o = 1, f = 0; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)tM < 0 && 0 === f && 0 !== this[r + i + 1] && (f = 1), this[r + i] = (t / o >> 0) - f & 255; return r + e }, r.prototype.writeInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 1, 127, -128), t < 0 && (t = 255 + t + 1), this[r] = 255 & t, r + 1 }, r.prototype.writeInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 2, 32767, -32768), this[r] = 255 & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r,M 2, 32767, -32768), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 2147483647, -2147483648), this[r] = 255 & t, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24, r + 4 }, r.prototype.writeInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[rM + 3] = 255 & t, r + 4 }, r.prototype.writeBigInt64LE = Z(function (t, r = 0) { return C(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")) }), r.prototype.writeBigInt64BE = Z(function (t, r = 0) { return x(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")) }), r.prototype.writeFloatLE = function (t, r, e) { return N(this, t, r, !0, e) }, r.prototype.writeFloatBE = function (t, r, e) { return N(this, t, r, !1, e) }, r.prototype.writeDoubleLE = function (t, r, e) { return M P(this, t, r, !0, e) }, r.prototype.writeDoubleBE = function (t, r, e) { return P(this, t, r, !1, e) }, r.prototype.copy = function (t, e, n, i) { if (!r.isBuffer(t)) throw new TypeError("argument should be a Buffer"); if (n || (n = 0), i || 0 === i || (i = this.length), e >= t.length && (e = t.length), e || (e = 0), i > 0 && i < n && (i = n), i === n) return 0; if (0 === t.length || 0 === this.length) return 0; if (e < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RM angeError("Index out of range"); if (i < 0) throw new RangeError("sourceEnd out of bounds"); i > this.length && (i = this.length), t.length - e < i - n && (i = t.length - e + n); const o = i - n; return this === t && "function" == typeof Uint8Array.prototype.copyWithin ? this.copyWithin(e, n, i) : Uint8Array.prototype.set.call(t, this.subarray(n, i), e), o }, r.prototype.fill = function (t, e, n, i) { if ("string" == typeof t) { if ("string" == typeof e ? (i = e, e = 0, n = this.length) : "string" == typeof n && (iM = n, n = this.length), void 0 !== i && "string" != typeof i) throw new TypeError("encoding must be a string"); if ("string" == typeof i && !r.isEncoding(i)) throw new TypeError("Unknown encoding: " + i); if (1 === t.length) { const r = t.charCodeAt(0); ("utf8" === i && r < 128 || "latin1" === i) && (t = r) } } else "number" == typeof t ? t &= 255 : "boolean" == typeof t && (t = Number(t)); if (e < 0 || this.length < e || this.length < n) throw new RangeError("Out of range index"); if (n <= e) return this; let o; iM f (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), "number" == typeof t) for (o = e; o < n; ++o)this[o] = t; else { const f = r.isBuffer(t) ? t : r.from(t, i), u = f.length; if (0 === u) throw new TypeError('The value "' + t + '" is invalid for argument "value"'); for (o = 0; o < n - e; ++o)this[o + e] = f[o % u] } return this }; const k = {}; function $(t, r, e) { k[t] = class extends e { constructor() { super(), Object.defineProperty(this, "message", { value: r.apply(this, arguments), writable: M !0, configurable: !0 }), this.name = `${this.name} [${t}]`, this.stack, delete this.name } get code() { return t } set code(t) { Object.defineProperty(this, "code", { configurable: !0, enumerable: !0, value: t, writable: !0 }) } toString() { return `${this.name} [${t}]: ${this.message}` } } } function j(t) { let r = "", e = t.length; const n = "-" === t[0] ? 1 : 0; for (; e >= n + 4; e -= 3)r = `_${t.slice(e - 3, e)}${r}`; return `${t.slice(0, e)}${r}` } function F(t, r, e, n, i, o) { if (t > e || t < r) { const n M = "bigint" == typeof r ? "n" : ""; let i; throw i = o > 3 ? 0 === r || r === BigInt(0) ? `>= 0${n} and < 2${n} ** ${8 * (o + 1)}${n}` : `>= -(2${n} ** ${8 * (o + 1) - 1}${n}) and < 2 ** ` + `${8 * (o + 1) - 1}${n}` : `>= ${r}${n} and <= ${e}${n}`, new k.ERR_OUT_OF_RANGE("value", i, t) } !function (t, r, e) { z(r, "offset"), void 0 !== t[r] && void 0 !== t[r + e] || D(r, t.length - (e + 1)) }(n, i, o) } function z(t, r) { if ("number" != typeof t) throw new k.ERR_INVALID_ARG_TYPE(r, "number", t) } function D(t, r, eM ) { if (Math.floor(t) !== t) throw z(t, e), new k.ERR_OUT_OF_RANGE(e || "offset", "an integer", t); if (r < 0) throw new k.ERR_BUFFER_OUT_OF_BOUNDS; throw new k.ERR_OUT_OF_RANGE(e || "offset", `>= ${e ? 1 : 0} and <= ${r}`, t) } $("ERR_BUFFER_OUT_OF_BOUNDS", function (t) { return t ? `${t} is outside of buffer bounds` : "Attempt to access memory outside buffer bounds" }, RangeError), $("ERR_INVALID_ARG_TYPE", function (t, r) { return `The "${t}" argument must be of type number. Received type ${typeof r}` }, TypeErrM or), $("ERR_OUT_OF_RANGE", function (t, r, e) { let n = `The value of "${t}" is out of range.`, i = e; return Number.isInteger(e) && Math.abs(e) > 2 ** 32 ? i = j(String(e)) : "bigint" == typeof e && (i = String(e), (e > BigInt(2) ** BigInt(32) || e < -(BigInt(2) ** BigInt(32))) && (i = j(i)), i += "n"), n += ` It must be ${r}. Received ${i}` }, RangeError); const Y = /[^+\/0-9A-Za-z-_]/g; function q(t, r) { let e; r = r || 1 / 0; const n = t.length; let i = null; const o = []; for (let f = 0; f < n; ++f) { if ((e M = t.charCodeAt(f)) > 55295 && e < 57344) { if (!i) { if (e > 56319) { (r -= 3) > -1 && o.push(239, 191, 189); continue } if (f + 1 === n) { (r -= 3) > -1 && o.push(239, 191, 189); continue } i = e; continue } if (e < 56320) { (r -= 3) > -1 && o.push(239, 191, 189), i = e; continue } e = 65536 + (i - 55296 << 10 | e - 56320) } else i && (r -= 3) > -1 && o.push(239, 191, 189); if (i = null, e < 128) { if ((r -= 1) < 0) break; o.push(e) } else if (e < 2048) { if ((r -= 2) < 0) break; o.push(e >> 6 | 192, 63 & e | 128)M } else if (e < 65536) { if ((r -= 3) < 0) break; o.push(e >> 12 | 224, e >> 6 & 63 | 128, 63 & e | 128) } else { if (!(e < 1114112)) throw new Error("Invalid code point"); if ((r -= 4) < 0) break; o.push(e >> 18 | 240, e >> 12 & 63 | 128, e >> 6 & 63 | 128, 63 & e | 128) } } return o } function G(t) { return n.toByteArray(function (t) { if ((t = (t = t.split("=")[0]).trim().replace(Y, "")).length < 2) return ""; for (; t.length % 4 != 0;)t += "="; return t }(t)) } function V(t, r, e, n) { let i; for (i = 0; i < n M && !(i + e >= r.length || i >= t.length); ++i)r[i + e] = t[i]; return i } function W(t, r) { return t instanceof r || null != t && null != t.constructor && null != t.constructor.name && t.constructor.name === r.name } function X(t) { return t != t } const J = function () { const t = new Array(256); for (let r = 0; r < 16; ++r) { const e = 16 * r; for (let n = 0; n < 16; ++n)t[e + n] = "0123456789abcdef"[r] + "0123456789abcdef"[n] } return t }(); function Z(t) { return "undefined" == typeof BigInt ? H : t } functionM H() { throw new Error("BigInt not supported") } }).call(this, t("buffer").Buffer) }, { "base64-js": 5, buffer: 2, ieee754: 6 }], 5: [function (t, r, e) { "use strict"; e.byteLength = function (t) { var r = h(t), e = r[0], n = r[1]; return 3 * (e + n) / 4 - n }, e.toByteArray = function (t) { var r, e, n = h(t), f = n[0], u = n[1], s = new o(function (t, r, e) { return 3 * (r + e) / 4 - e }(0, f, u)), a = 0, c = u > 0 ? f - 4 : f; for (e = 0; e < c; e += 4)r = i[t.charCodeAt(e)] << 18 | i[t.charCodeAt(e + 1)] << 12M | i[t.charCodeAt(e + 2)] << 6 | i[t.charCodeAt(e + 3)], s[a++] = r >> 16 & 255, s[a++] = r >> 8 & 255, s[a++] = 255 & r; 2 === u && (r = i[t.charCodeAt(e)] << 2 | i[t.charCodeAt(e + 1)] >> 4, s[a++] = 255 & r); 1 === u && (r = i[t.charCodeAt(e)] << 10 | i[t.charCodeAt(e + 1)] << 4 | i[t.charCodeAt(e + 2)] >> 2, s[a++] = r >> 8 & 255, s[a++] = 255 & r); return s }, e.fromByteArray = function (t) { for (var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; f < u; f += 16383)o.push(a(t, f, f + 16383 > u ? u : f +M 16383)); 1 === i ? (r = t[e - 1], o.push(n[r >> 2] + n[r << 4 & 63] + "==")) : 2 === i && (r = (t[e - 2] << 8) + t[e - 1], o.push(n[r >> 10] + n[r >> 4 & 63] + n[r << 2 & 63] + "=")); return o.join("") }; for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = 0, s = f.length; u < s; ++u)n[u] = f[u], i[f.charCodeAt(u)] = u; function h(t) { var r = t.length; if (r % 4 > 0) throw new Error("Invalid string. Length M must be a multiple of 4"); var e = t.indexOf("="); return -1 === e && (e = r), [e, e === r ? 0 : 4 - e % 4] } function a(t, r, e) { for (var i, o, f = [], u = r; u < e; u += 3)i = (t[u] << 16 & 16711680) + (t[u + 1] << 8 & 65280) + (255 & t[u + 2]), f.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]); return f.join("") } i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 }, {}], 6: [function (t, r, e) { e.read = function (t, r, e, n, i) { var o, f, u = 8 * i - n - 1, s = (1 << u) - 1, h =M s >> 1, a = -7, c = e ? i - 1 : 0, p = e ? -1 : 1, l = t[r + c]; for (c += p, o = l & (1 << -a) - 1, l >>= -a, a += u; a > 0; o = 256 * o + t[r + c], c += p, a -= 8); for (f = o & (1 << -a) - 1, o >>= -a, a += n; a > 0; f = 256 * f + t[r + c], c += p, a -= 8); if (0 === o) o = 1 - h; else { if (o === s) return f ? NaN : 1 / 0 * (l ? -1 : 1); f += Math.pow(2, n), o -= h } return (l ? -1 : 1) * f * Math.pow(2, o - n) }, e.write = function (t, r, e, n, i, o) { var f, u, s, h = 8 * o - i - 1, a = (1 << h) - 1, c = a >M > 1, p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, l = n ? 0 : o - 1, y = n ? 1 : -1, g = r < 0 || 0 === r && 1 / r < 0 ? 1 : 0; for (r = Math.abs(r), isNaN(r) || r === 1 / 0 ? (u = isNaN(r) ? 1 : 0, f = a) : (f = Math.floor(Math.log(r) / Math.LN2), r * (s = Math.pow(2, -f)) < 1 && (f--, s *= 2), (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= 2 && (f++, s /= 2), f + c >= a ? (u = 0, f = a) : f + c >= 1 ? (u = (r * s - 1) * Math.pow(2, i), f += c) : (u = r * Math.pow(2, c - 1) * Math.pow(2, i), M f = 0)); i >= 8; t[e + l] = 255 & u, l += y, u /= 256, i -= 8); for (f = f << i | u, h += i; h > 0; t[e + l] = 255 & f, l += y, f /= 256, h -= 8); t[e + l - y] |= 128 * g } }, {}] }, {}, [4])(4) });</script> <script> const buf = buffer </script> <script>var bton = function (t) { const n = new TextEncoder, e = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXM YZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function r(t) { for (const n of e) if (n.name === t) return n.charset; throw TypeError("Charset does not exist: " + t) encode: function (t, e, i = !1) { "string" == typeof t && (t = n.encode(t)); const o = r(e), s = o.length, a = []; let c, u, f, h = "", l = 0; for (c = 0; c < t.length; c++) for (l = 0, u = t[c], h += u > 0 || (h.length ^ c) > 0 ? "" : "1"; l in a || u > 0;) f = a[l], f = f > 0 ? 256 * f + u : u, u = f / s | 0, a[l] = f % s, l++; for (; l-- > 0;) h += o[a[l]]; return i && h.length % 4 > 0 ? h + "=".repeat(4 - h.length % 4) : h }, decode: function (t, n) { const e = r(n), i = e.length, o = [], s = []; t = t.replace("=", ""); let a, c, u, f = 0; for (a = 0; a < t.length; a++) M if (f = 0, c = e.indexOf(t[a]), c < 0) throw new Error(`Character range out of bounds: ${c}`); for (c > 0 || (s.length ^ a) > 0 || s.push(0); f in o || c > 0;) u = o[f], u = u > 0 ? u * i + c : c, c = u >> 8, o[f] = u % 256, f++ for (; f-- > 0;) s.push(o[f]); return new Uint8Array(s) }, o = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", s = [996825010, 642813549, 513874426, 1027748829, 705979059], a = { BECH32: "bech32", BECH32M: "bech32M function c(t) { switch (t) { case a.BECH32: return 1; case a.BECH32M: return 734539939; throw new Error(`Unrecognized encoding: ${t}`) function u(t) { for (let e = 0; e < t.length; ++e) { const r = n >> 25; n = (33554431 & n) << 5 ^ t[e]; for (let t = 0; t < 5; ++t) (r >> t & 1) > 0 && (n ^= s[t]) function f(t) { const n = []; for (e = 0; e < t.length; ++e) n.push(t.charCodeAt(e) >> 5); for (n.push(0), e = 0; e < t.length; ++e) n.push(31 & t.charCodeAt(e)); function h(t, n, e, r = !0) { const i = []; let o = 0, s = 0; const a = (1 << e) - 1, c = (1 << n + e - 1) - 1; for (const r of t) { if (r < 0 || r >> n > 0) return []; for (o = (o << n | r) & c, s M += n; s >= e;) s -= e, i.push(o >> s & a) if (r) s > 0 && i.push(o << e - s & a); else if (s >= n || (o << e - s & a) > 0) return []; function l(t, n, e) { const r = n.concat(function (t, n, e) { const r = u(f(t).concat(n).concat([0, 0, 0, 0, 0, 0])) ^ c(e), i = []; for (let t = 0; t < 6; ++t) i.push(r >> 5 * (5 - t) & 31); }(t, n, e)); let i = t + "1"; for (let t = 0; t < r.length; M ++t) i += o.charAt(r[t]); function d(t, n) { const e = n > 0 ? "bech32m" : "bech32"; if (!function (t) { let n, e, r = !1, i = !1; for (n = 0; n < t.length; ++n) { if (e = t.charCodeAt(n), e < 33 || e > 126) return !1; e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) return !(r && i) }(t)) return { hrp: null, data: [255] }; if (!function (t) { t n = t.lastIndexOf("1"); return !(n < 1 || n + 7 > t.length || t.length > 90) }(t = t.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = t.lastIndexOf("1"), s = t.substring(0, i); for (let n = i + 1; n < t.length; ++n) { const e = o.indexOf(t.charAt(n)); if (-1 === e) return { hrp: null, data: [255] }; return function (t, n, e) { return u(f(t).concat(n)) === c(e) }(s, r, e) ? {M hrp: s, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } function w(t, n = 0) { const e = t.split("1", 1)[0], { hrp: r, data: i } = d(t, n), o = h(i.slice(1), 5, 8, !1), s = o.length; switch (!0) { case e !== r: throw new Error("Returned hrp string is invalid."); case null === o || s < 2 || s > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("RetM urned version bit is out of range."); case 0 === i[0] && 20 !== s && 32 !== s: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== n: case 0 !== i[0] && 1 !== n: throw new Error("Decoded version bit does not match."); return Uint8Array.from(o) encode: function (t, n = "bch", e = 0) { const r = l(n, [e, ...h([...t], 8, 5)], e >M 0 ? "bech32m" : "bech32"); return w(r, e), r }, decode: w }, g = new TextEncoder, p = new TextDecoder; function m(t) { return g.encode(t) function b(t) { const n = []; let e, r = 0; if (t.length % 2 > 0) throw new Error(`Invalid hex string length: ${t.length}`); for (e = 0; e < t.length; e += 2) n[r] = parseInt(t.slice(e, e + 2), 16), r += 1; return Uint8Array.from(n) function A(t) { if (0 === t) return Uint8Array.of(0); const n = []; for (; t > 0;) { const e = 255 & t; n.push(e), t = (t - e) / 256 return Uint8Array.from(n) function x(t) { if (0n === t) return Uint8Array.of(0); const n = []; for (; t > 0n;) { const e = 0xffn & t; n.push(Number(e)), t = (t - e) / 256n return Uint8Array.from(n) function E(t) { return p.decM function v(t) { let n, e = 0; for (n = t.length - 1; n >= 0; n--) e = 256 * e + t[n]; return Number(e) function S(t) { let n, e = 0n; for (n = t.length - 1; n >= 0; n--) e = 256n * e + BigInt(t[n]); return BigInt(e) async function P(t) { return crypto.subtle.digest("SHA-256", t).then((t => new Uint8Array(t))) async function O(t) { return P(await P(t)) const { crypto: U } = globalThis; let _ = class extends Uint8Array { this.num = (t, n, e = "le") => { const r = new _(A(t), n); return "le" === e ? r.reverse() : r this.big = (t, n, e = "le") => { const r = new _(x(t), n); return "le" === e ? r.reverse() : r static async b58check(t) { const n = i.decode(t, "base58"); return new _(await async function (t) { const n = t.slice(0, -4), e = t.slice(-4); if ((await O(n)).slice(0, 4).toString() !== e.toString()) throw new Error("Invalid checksum!"); return n this.any = (t, n) => new _(function (t) { if (t instanceof ArrayBuffer) return new Uint8Array(t); if (t instanceof Uint8Array) return t; const n = typeof t; switch (n) { return x(t); case "boolean": return Uint8Array.of(t); case "number": return A(t); case "string": return null !== t.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? b(t) : g.encode(t); default: throw TypeError("Unsupported format:" + n) this.raw = (t, n) => new _(t, n) this.str = (t, n) => new _(m(t), n) this.hex = (t, n) => new _(b(t), n) this.json = t => new _(m(JSON.stringify(t))) this.base64 = t => new _(i.decode(t, "base64")) this.b64url = t => new _(i.decode(t, "base64url")) this.bech32 = (t, n = 0) => new _(y.decode(t, n)) constructor(t, n)M if (void 0 !== n) { const e = new Uint8Array(n).fill(0); e.set(new Uint8Array(t)), t = e.buffer return super(t), this return this.toNum() return this.toBig() return this.toArr() return this.toStr() return this.toHex() return new Uint8Array(this) get base64() { return this.toBase64() get b64url() { return this.toB64url() get digest() { return this.toDigest() return this.toDigest().then((t => new _(t).hex)) toNum(t = "le") { return v("le" === t ? this.reverse() : this) toBig(t = "le") { S("le" === t ? this.reverse() : this) async toDigest(t = "SHA-256") { return U.subtle.digest(t, this.raw).then((t => new Uint8Array(t))) async tob58check() { return i.encode(await async function (t) { const n = await O(t); return Uint8Array.of(...t, ...n.slice(0, 4)) }(this), "base58") return Array.from(this) return E(this) return function (t) { const n = []; for (e = 0; e < t.length; e++) n.push(t[e].toString(16).padStart(2, "0")); return n.join("") return JSON.parse(E(this)) return new Uint8Array(this) toB64url() { return i.encode(this, "base64url") toBase64(t) { urn i.encode(this, "base64", t) toBech32(t, n = 0) { return y.encode(this, t, n) prepend(t) { return _.of(...t, ...this) return _.of(...this, ...t) slice(t, n) { return new _(new Uint8Array(this).slice(t, n)) return new _(new Uint8Array(this).reverse()) write(t, n) { this.set(t, n) prefixSize2(t) { return _.of(..._.readSize(this.length, t), ...this) // Rarity Garden Hack prefixSize(t) { const sized = _.readSize(this.length, t); const thised = this; var uint8 = new Uint8Array(sized.length + thised.length); uint8.set(sized); uint8.set(thised, sized.length); return new _(uint8) static from(t) { return new _(Uint8Array.from(t)) static of2(...t) { return new _(Uint8Array.of(...t)) // Rarity Garden Hack static of(...t) { const uint8 = new Uint8Array(t.length); for (let i = 0; i < uint8.length; i++) { uint8[i] = t[i]; return new _(uint8) static join(t) { let n, e = 0; const r = t.reduce(((t, n) => t + n.length), 0), i = new Uint8Array(r); for (const r of t) for (n = 0; n < r.leM ngth; e++, n++) i[e] = r[n]; return new _(i, r) static readSize(t, n) { if (t < 253) return _.num(t, 1); if (t < 65536) return _.of(253, ..._.num(t, 2, n)); if (t < 4294967296) return _.of(254, ..._.num(t, 4, n)); if (t < 0x10000000000000000) return _.of(255, ..._.num(t, 8, n)); throw new Error(`Value is too large: ${t}`) static random(t = 32) { return new _(U.getRandomValues(new Uint8Array(t))) this.encode = m this.decode = E static normalize(t, n) { if (t instanceof Uint8Array) return t; if ("string" == typeof t) return _.hex(t, n).raw; if ("number" == typeof t) return _.num(t, n).raw; if ("bigint" == typeof t) return _.big(t, n).raw; throw TypeError("Unrecognized format: " + typeof t) static serialize(t) { ing" == typeof t) return _.str(t).raw; if ("object" == typeof t) { if (t instanceof Uint8Array) return t; return _.json(t).raw } catch { throw TypeError("Object is not serializable.") throw TypeError("Unrecognized format: " + typeof t) static revitalize(t) { if (t instanceof Uint8Array && (t = E(t)), "string" == typeof t) try { return JSON.parse(tM return t constructor(t) { this.data = new Uint8Array(t), this.size = this.data.length if (t > this.size) throw new Error(`Size greater than stream: ${t} > ${this.size}`); return new _(this.data.slice(0, t).buffer) t = t ?? this.readSize(); const n = this.peek(t); his.data = this.data.slice(t), this.size = this.data.length, n readSize() { const t = this.read(1).toNum(); switch (!0) { case t >= 0 && t < 253: return t; case 253 === t: return this.read(2).toNum(); case 254 === t: return this.read(4).toNum(); case 255 === t: return this.read(8).toNum(); default: throw new Error(`Varint is out of raM OP_PUSHDATA1: 76, OP_PUSHDATA2: 77, OP_PUSHDATA4: 78, OP_1NEGATE: 79, OP_NOTIF: 100, OP_ELSE: 103, OP_ENDIF: 104, OP_VERIFY: 105, OP_RETURN: 106, OP_TOALTSTACK: 107, OP_FROMALTSTACK: 108, OP_2DROP: 109, OP_2DUP: 110, OP_3DUP: 111, OP_2OVER: 112, OP_2ROT: 113, OP_2SWAP: 114, OP_IFDUP: 115, OP_DEPTH: 116, OP_DROP: 117, OP_DUP: 118, OP_NIP: 119, OP_OVER: 120, OP_PICK: 121, OP_ROT: 123, OP_SWAP: 124, OP_TUCK: 125, OP_SIZE: 130, OP_EQUAL: 135, OP_EQUALVERIFY: 136, OP_1ADD: 139, OP_1SUB: 140, OP_NEGATE: 143, OP_ABS: 144, OP_NOT: 145, OP_0NOTEQUAL: 146, OP_ADD: 147, OP_SUB: 148, OP_BOOLAND: 154, OP_BOOLOR: 155, OP_NUMEQUAL: 156, OP_NUMEQUALVERIFY: 157, OP_NUMNOTEQUAL: 158, OP_LESSTHAN: 159, OP_LESSTHANOREQUAL: 161, OP_GREATERTHANOREQUAL: 162, OP_MIN: 163, OP_MAX: 164, OP_WITHIN: 165, OP_RIPEMD160: 166, OP_SHA1: 167, OP_SHA256: 168, OP_HASH160: 169, OP_HASH256: 170, OP_CODESEPARATOR: 171, OP_CHECKSIG: 172, OP_CHECKSIGVERIFY: 173, OP_CHECKMULTISIG: 174, OP_CHECKMULTISIGVERIFY: 175, OP_NOP1: 176, OP_CHECKLOCKTIMEVERIFY: 177, _CHECKSEQUENCEVERIFY: 178, OP_NOP4: 179, OP_NOP5: 180, OP_NOP6: 181, OP_NOP7: 182, OP_NOP8: 183, OP_NOP9: 184, OP_NOP10: 185 function H(t) { for (const [n, e] of Object.entries(I)) if (e === t) return n; throw new Error("OPCODE not found:" + String(t)) const z = 520; function N(t = [], n = !0) { let e = _.num(0); return Array.isArray(t) && (e = _.raw(T(t))), "string" == tyM peof t && (e = _.hex(t)), t instanceof Uint8Array && (e = _.raw(t)), n && (e = e.prefixSize("be")), e.raw function T(t) { const n = []; for (const e of t) n.push(R(e)); return n.length > 0 ? _.join(n) : new Uint8Array function R(t) { let n = new Uint8Array; if ("string" == typeof t) { if (t.startsWith("OP_")) return _.num(function (t) { for (const [n, e] of Object.entries(I)) if (n === t) return Number(e); throw new Error("OPCODE not found:" + t) t.startsWith("STR_") && (n = _.str(t.slice(3))), n = _.hex(t) if ("number" == typeof t && (n = _.num(t)), t instanceof Uint8Array && (n = t), n.length > z) { const t = function (t) { const n = [], e = new B(t); for (; e.size > z;) n.push(e.read(z)); return n.push(e.read(e.size)), n return T(t) return _.of(...function (tM const n = _.num(76, 1), e = _.num(77, 1); switch (!0) { case t <= 75: return _.num(t); case t > 75 && t < 256: return _.join([n, _.num(t, 1)]); case t >= 256 && t <= z: return _.join([e, _.num(t, 2, "be")]); default: throw new Error("Invalid word size:" + t.toString()) }(n.length), ...n) function k(t) { return _.num(t, 4).reverse()M function C(t) { return _.hex(t, 32).reverse() function D(t) { return _.num(t, 4).reverse() function K(t = 4294967295) { return ("string" == typeof t ? _.hex(t, 4) : _.num(t, 4)).reverse() function j(t) { return "number" == typeof t && (t = BigInt(t)), _.big(t, 8).reverse() function $(t) { const n = []; if (Array.isArray(t)) { n.push(_.readSize(t.length)); for (const e of t) n.push(N(e)); return _.join(n) return _.normalize(t) function V(t) { return _.num(t, 4).reverse() function L(t) { "string" == typeof t && (t = _.hex(t).raw); const n = new B(t), e = function (t) { return t.read(4).reverse().toNum() }(n), r = function (t) { const [n, e] = [...t.peek(2)]; if (0 === n) { if (t.read(2), 1 === e) return !0; throw new Error(`Invalid witness flag: ${e}`) }(n), i = function (t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) n.push(q(t)); }(n), o = function (t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) n.push(F(t)); if (r) for (const t of i) t.witness = M(n); const s = function (t) { return t.read(4).reversM return { version: e, input: i, output: o, locktime: s } function q(t) { txid: t.read(32).reverse().toHex(), vout: t.read(4).reverse().toNum(), scriptSig: Y(t, !0), sequence: t.read(4).reverse().toHex() function F(t) { return { value: t.read(8).reverse().big, scriptPubKey: Y(t, !0) } function M(t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) { const e = Y(t, !0); function Y(t, n) { const e = !0 === n ? t.readSize() : t.size; return e > 0 ? t.read(e).toHex() : _.num(0).toHex() function Z(t) { if (void 0 === t) throw new Error("Script data is undefined!"); if (Array.isArray(t)) throw new Error("Script data is an array!"); return _.normalize(t) function W(t) { case 0 === t: return "opcode"; case t >= 1 && t <= 75: return "varint"; case 76 === t: return "pushdata1"; case 77 === t: return "pushdata2"; case 78 === t: return "pushdata4"; case t <= 185: return "opcode"; throw new Error(`Invalid word range: ${t}`) function G(t) { switch (!0) { case "number" != typeof t: return !1; case 0 === t: return !0; case [126, 127, 128, 129, 131, 132, 133, 134, 141, 142, 149, 150, 151, 152, 153].includes(t): return !1; case 75 < t && t < 186: return !0; return !1 /*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */ const { crypto: X } = globalThis, J = BigInt(0), Q = BigInt(1), tt = BigIntM (2), nt = BigInt(3), et = BigInt(8), rt = Object.freeze({ b: BigInt(7), P: BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), n: BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"), Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee") }), it = (t, n) => (t + n / tt) / n, ot = { beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), splitScalar(t) { const { n: n } = rt, e = BigInt("0x3086d221a7d46bcde86c90e49284eb15"), r = -Q * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), i = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), o = e, s = BigInt("0x1000000M 00000000000000000000000000"), a = it(o * t, n), c = it(-r * t, n); let u = Tt(t - a * e - c * i, n), f = Tt(-a * r - c * o, n); const h = u > s, l = f > s; if (h && (u = n - u), l && (f = n - f), u > s || f > s) throw new Error("splitScalarEndo: Endomorphism failed, k=" + t); return { k1neg: h, k1: u, k2neg: l, k2: f } }, st = 32, at = 32, ct = 32, ut = st + 1, ft = 2 * st + 1; function ht(t) { const { a: n, b: e } = rt, r =M Tt(t * t), i = Tt(r * t); return Tt(i + n * t + e) const lt = rt.a === J; class dt extends Error { constructor(t) { function wt(t) { if (!(t instanceof yt)) throw new TypeError("JacobianPoint expected") constructor(t, n, e) { this.x = t, this.y = n, this.z = e static get BASE() { return new yt(rt.Gx, rt.Gy, Q) return new yt(J, Q, J) static fromAffine(t) { if (!(t instanceof mt)) throw new TypeError("JacobianPoint#fromAffine: expected Point"); return t.equals(mt.ZERO) ? yt.ZERO : new yt(t.x, t.y, Q) static toAffineBatch(t) { const n = function (t, n = rt.P) { const e = new Array(t.length), r = kt(t.reduce(((t, r, i) => r === J ? t : (e[i] = t, Tt(t * r, n))), Q), n); return tM .reduceRight(((t, r, i) => r === J ? t : (e[i] = Tt(t * e[i], n), Tt(t * r, n))), r), e }(t.map((t => t.z))); return t.map(((t, e) => t.toAffine(n[e]))) static normalizeZ(t) { return yt.toAffineBatch(t).map(yt.fromAffine) const { x: n, y: e, z: r } = this, { x: i, y: o, z: s } = t, a = Tt(r * r), c = Tt(s * s), u = Tt(n * c), f = Tt(i * a), h = Tt(Tt(e * s) * c), l = Tt(Tt(o * r) * a); return u === f && h === l return new yt(this.x, Tt(-this.y), this.z) const { x: t, y: n, z: e } = this, r = Tt(t * t), i = Tt(n * n), o = Tt(i * i), s = t + i, a = Tt(tt * (Tt(s * s) - r - o)), c = Tt(nt * r), u = Tt(c * c), f = Tt(u - tt * a), h = Tt(c * (a - f) - et * o), l = Tt(tt * n * e); return new yt(f, h, l) { x: n, y: e, z: r } = this, { x: i, y: o, z: s } = t; if (i === J || o === J) return this; if (n === J || e === J) return t; const a = Tt(r * r), c = Tt(s * s), u = Tt(n * c), f = Tt(i * a), h = Tt(Tt(e * s) * c), l = Tt(Tt(o * r) * a), d = Tt(f - u), w = Tt(l - h); if (d === J) return w === J ? this.double() : yt.ZERO; const y = Tt(d * d), g = Tt(d * y), p = Tt(u * y), m = Tt(w * w - g - tt * p), b = Tt(w * (p - m) - h * g), A = Tt(rM return new yt(m, b, A) subtract(t) { return this.add(t.negate()) multiplyUnsafe(t) { const n = yt.ZERO; if ("bigint" == typeof t && t === J) return n; let e = Nt(t); if (e === Q) return this; if (!lt) { let t = n, r = this; for (; e > J;) e & Q && (t = t.add(r)), r = r.double(), e >>= Q; return t let { k1neg: r, k1: i, k2neM g: o, k2: s } = ot.splitScalar(e), a = n, c = n, u = this; for (; i > J || s > J;) i & Q && (a = a.add(u)), s & Q && (c = c.add(u)), u = u.double(), i >>= Q, s >>= Q; return r && (a = a.negate()), o && (c = c.negate()), c = new yt(Tt(c.x * ot.beta), c.y, c.z), a.add(c) precomputeWindow(t) { const n = lt ? 128 / t + 1 : 256 / t + 1, e = []; let r = this, i = r; for (let o = 0; o < n; o++) { i = r, e.push(i); et n = 1; n < 2 ** (t - 1); n++) i = i.add(r), e.push(i); r = i.double() wNAF(t, n) { !n && this.equals(yt.BASE) && (n = mt.BASE); const e = n && n._WINDOW_SIZE || 1; if (256 % e) throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2"); let r = n && pt.get(n); r || (r = this.precomputeWindow(e), n && 1 !== e && (r = yt.normalizeZ(r), pt.set(n, r))); let i = yM t.ZERO, o = yt.BASE; const s = 1 + (lt ? 128 / e : 256 / e), a = 2 ** (e - 1), c = BigInt(2 ** e - 1), u = 2 ** e, f = BigInt(e); for (let n = 0; n < s; n++) { const e = n * a; let s = Number(t & c); t >>= f, s > a && (s -= u, t += Q); const h = e, l = e + Math.abs(s) - 1, d = n % 2 != 0, w = s < 0; 0 === s ? o = o.add(gt(d, r[h])) : i = i.add(gt(w, r[l])) return { p: i, f: o } let e, r, i = Nt(t); const { k1neg: t, k1: o, k2neg: s, k2: a } = ot.splitScalar(i); let { p: c, f: u } = this.wNAF(o, n), { p: f, f: h } = this.wNAF(a, n); c = gt(t, c), f = gt(s, f), f = new yt(Tt(f.x * ot.beta), f.y, f.z), e = c.add(f), r = u.add(h) const { p: t, f: o } = this.wNAF(i, n); e = t, r = o return yt.normalizeZ([e, r])[0] const { x: n, y: e, z: r } = this, i = this.equals(yt.ZERO); null == t && (t = i ? et : kt(r)); const o = t, s = Tt(o * o), a = Tt(s * o), c = Tt(n * s), u = Tt(e * a), f = Tt(r * o); if (i) return mt.ZERO; if (f !== Q) throw new Error("invZ was invalid"); return new mt(c, u) function gt(t, n) { const e = n.negate(); return t ? e : n const pt = new WeakMap; let mt = class {M constructor(t, n) { this.x = t, this.y = n _setWindowSize(t) { this._WINDOW_SIZE = t, pt.delete(this) static get BASE() { return new mt(rt.Gx, rt.Gy) static get ZERO() { return new mt(J, J) hasEvenY() { return this.y % tt === J static fromCompressedHex(t) { const n = 32 === t.length, e = Ht(n ? t : t.subarray(1)); (e)) throw new Error("Point is not on curve"); let r = function (t) { const { P: n } = rt, e = BigInt(6), r = BigInt(11), i = BigInt(22), o = BigInt(23), s = BigInt(44), a = BigInt(88), c = t * t * t % n, u = c * c * t % n, f = Rt(u, nt) * u % n, h = Rt(f, nt) * u % n, l = Rt(h, tt) * c % n, d = Rt(l, r) * l % n, w = Rt(d, i) * d % n, y = Rt(w, s) * w % n, g = Rt(y, a) * y % n, p = Rt(g, s) * w % n, m = Rt(p, nt) * u % n, b = Rt(m, o) * d % n, A = Rt(b, e) * c % n, x = Rt(A, tt); if (x * x % n !== t) throw new Error("Cannot find square root"); return x const i = (r & Q) === Q; if (n) i && (r = Tt(-r)); else { 1 == (1 & t[0]) !== i && (r = Tt(-r)) const o = new mt(e, r); return o.assertValidity(), o static fromUncompressedHex(t) { const n = Ht(t.subarray(1, st + 1)), e = Ht(t.subarray(st + 1, 2 *M st + 1)), r = new mt(n, e); return r.assertValidity(), r static fromHex(t) { const n = zt(t), e = n.length, r = n[0]; if (e === st) return this.fromCompressedHex(n); if (e === ut && (2 === r || 3 === r)) return this.fromCompressedHex(n); if (e === ft && 4 === r) return this.fromUncompressedHex(n); throw new Error(`Point.fromHex: received invalid point. Expected 32-${ut} compressed bytes or ${ft} uncompressed bytes, not ${e}`) static fromPrivateKey(t) { return mt.BASE.multiply(qt(t)) static fromSignature(t, n, e) { const { r: r, s: i } = Mt(n); if (![0, 1, 2, 3].includes(e)) throw new Error("Cannot recover: invalid recovery bit"); const o = Ct(zt(t)), { n: s } = rt, a = 2 === e || 3 === e ? r + s : r, c = kt(a, s), u = Tt(-o * c, s), f = Tt(i * c, s), h = 1 & e ? "03" : "02", l = mt.fromHex(h + Ot(a)), d = mt.BASE.multiplyAndAM if (!d) throw new Error("Cannot recover signature: point at infinify"); return d.assertValidity(), d toRawBytes(t = !1) { return It(this.toHex(t)) toHex(t = !1) { const n = Ot(this.x); return `${this.hasEvenY() ? "02" : "03"}${n}` return `04${n}${Ot(this.y)}` return this.toHex(!0).slice(2) return this.toRawBytes(!0).slice(1) assertValidity() { const t = "Point is not on elliptic curve", { x: n, y: e } = this; if (!Vt(n) || !Vt(e)) throw new Error(t); const r = Tt(e * e); if (Tt(r - ht(n)) !== J) throw new Error(t) return this.x === t.x && this.y === t.y return new mt(this.x, Tt(-this.y)) return yt.fromAffine(this).double().toAffine() return yt.fromAffine(this).add(yt.fromAffine(t)).toAffine() subtract(t) { return this.add(t.negate()) multiply(t) { return yt.fromAffine(this).multiply(t, this).toAffine() multiplyAndAddUnsafe(t, n, e) { const r = yt.fromAffine(this), i = n === J || n === Q || this !== mt.BASE ? r.multiplyUnsafe(n) : r.multiply(M o = yt.fromAffine(t).multiplyUnsafe(e), s = i.add(o); return s.equals(yt.ZERO) ? void 0 : s.toAffine() function bt(t) { return Number.parseInt(t[0], 16) >= 8 ? "00" + t : t function At(t) { if (t.length < 2 || 2 !== t[0]) throw new Error(`Invalid signature integer tag: ${St(t)}`); const n = t[1], e = t.subarray(2, n + 2); if (!n || e.length !== n) throw new Error("Invalid signature integer: wrong length")M if (0 === e[0] && e[1] <= 127) throw new Error("Invalid signature integer: trailing length"); return { data: Ht(e), left: t.subarray(n + 2) } constructor(t, n) { this.r = t, this.s = n, this.assertValidity() static fromCompact(t) { const n = t instanceof Uint8Array, e = "Signature.fromCompact"; if ("string" != typeof t && !n) throw new TypeError(`${e}: Expected string or Uint8Array`); if (128 !== r.length) throw new Error(`${e}: Expected 64-byte hex`); return new xt(Bt(r.slice(0, 64)), Bt(r.slice(64, 128))) static fromDER(t) { const n = t instanceof Uint8Array; if ("string" != typeof t && !n) throw new TypeError("Signature.fromDER: Expected string or Uint8Array"); const { r: e, s: r } = function (t) { if (t.length < 2 || 48 != t[0]) throw new Error(`Invalid signature tag: ${St(t)}`); if (t[1] !== t.length - 2) throw new Error("Invalid signature: incorrect length"); const { data: n, left: e } = At(t.subarray(2)), { data: r, left: i } = At(e); if (i.length) throw new Error(`Invalid signature: left bytes after parsing: ${St(i)}`); return { r: n, s: r } }(n ? t : It(t)); return new xt(e, r) static fromHex(t) { return this.fromDER(t) assertValidity() { const { r: t, sM if (!$t(t)) throw new Error("Invalid Signature: r must be 0 < r < n"); if (!$t(n)) throw new Error("Invalid Signature: s must be 0 < s < n") hasHighS() { const t = rt.n >> Q; return this.s > t normalizeS() { return this.hasHighS() ? new xt(this.r, Tt(-this.s, rt.n)) : this toDERRawBytes() { return It(this.toDERHex()) toDERHex() { const t =M bt(_t(this.s)), n = bt(_t(this.r)), e = t.length / 2, r = n.length / 2, i = _t(e), o = _t(r); return `30${_t(r + e + 4)}02${o}${n}02${i}${t}` toRawBytes() { return this.toDERRawBytes() return this.toDERHex() toCompactRawBytes() { return It(this.toCompactHex()) toCompactHex() { return Ot(this.r) + Ot(this.s) function Et(...t) { if (!t.every((t => t instanceof Uint8Array))) throw new Error("Uint8Array list expected"); if (1 === t.length) return t[0]; const n = t.reduce(((t, n) => t + n.length), 0), e = new Uint8Array(n); for (let n = 0, r = 0; n < t.length; n++) { const i = t[n]; e.set(i, r), r += i.length const vt = Array.from({ length: 256 }, ((t, n) => n.toString(16).padStart(2, "0"))); function St(t) { if (!(t instanceof UM int8Array)) throw new Error("Expected Uint8Array"); for (let e = 0; e < t.length; e++) n += vt[t[e]]; const Pt = BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"); function Ot(t) { if ("bigint" != typeof t) throw new Error("Expected bigint"); if (!(J <= t && t < Pt)) throw new Error("Expected number 0 <= n < 2^256"); return t.toString(16).padStart(64, "0") function Ut(tM const n = It(Ot(t)); if (32 !== n.length) throw new Error("Error: expected 32 bytes"); function _t(t) { const n = t.toString(16); return 1 & n.length ? `0${n}` : n function Bt(t) { if ("string" != typeof t) throw new TypeError("hexToNumber: expected string, got " + typeof t); return BigInt(`0x${t}`) function It(t) { if ("string" != typeof t) throw new TypeError("hexToBytes: expeM cted string, got " + typeof t); if (t.length % 2) throw new Error("hexToBytes: received invalid unpadded hex" + t.length); const n = new Uint8Array(t.length / 2); for (let e = 0; e < n.length; e++) { const r = 2 * e, i = t.slice(r, r + 2), o = Number.parseInt(i, 16); if (Number.isNaN(o) || o < 0) throw new Error("Invalid byte sequence"); function Ht(t) { return Bt(St(t)) return t instanceof Uint8Array ? Uint8Array.from(t) : It(t) function Nt(t) { if ("number" == typeof t && Number.isSafeInteger(t) && t > 0) return BigInt(t); if ("bigint" == typeof t && $t(t)) return t; throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n") function Tt(t, n = rt.P) { const e = t % n; return e >= J ? e : n + e function Rt(t, n) { const { P: e } = rt; for (; n-- > J;) r *= r, r %= e; function kt(t, n = rt.P) { if (t === J || n <= J) throw new Error(`invert: expected positive integers, got n=${t} mod=${n}`); let e = Tt(t, n), r = n, i = J, o = Q; for (; e !== J;) { const t = r % e, n = i - o * (r / e); r = e, e = t, i = o, o = n if (r !== Q) throw new Error("invert: does not exist"); return Tt(i, n) const e = function (t) { const n = 8 * t.length - 8 * at, e = Ht(t); return n > 0 ? e >> BigInt(n) : e if (n) return e; const { n: r } = rt; return e >= r ? e - r : e constructor(t, n) { if (this.hashLen = t, this.qByteLen = n, "number" != typeof t || t < 2) throw new Error("hashLen must be a number"); if ("number" != typeof n || n < 2) throw neM w Error("qByteLen must be a number"); this.v = new Uint8Array(t).fill(1), this.k = new Uint8Array(t).fill(0), this.counter = 0 hmac(...t) { return ln.hmacSha256(this.k, ...t) hmacSync(...t) { return Kt(this.k, ...t) checkSync() { if ("function" != typeof Kt) throw new dt("hmacSha256Sync needs to be set") if (this.counter >= 1e3) throw new Error("Tried 1,000 k valuesM for sign(), all were invalid"); this.counter += 1 async reseed(t = new Uint8Array) { this.k = await this.hmac(this.v, Uint8Array.from([0]), t), this.v = await this.hmac(this.v), 0 !== t.length && (this.k = await this.hmac(this.v, Uint8Array.from([1]), t), this.v = await this.hmac(this.v)) reseedSync(t = new Uint8Array) { this.checkSync(), this.k = this.hmacSync(this.v, Uint8Array.from([0]), t), this.v = this.hmacSync(this.v), 0 !== t.lengM th && (this.k = this.hmacSync(this.v, Uint8Array.from([1]), t), this.v = this.hmacSync(this.v)) async generate() { this.incr(); let t = 0; const n = []; for (; t < this.qByteLen;) { this.v = await this.hmac(this.v); const e = this.v.slice(); n.push(e), t += this.v.length return Et(...n) generateSync() { this.checkSync(), this.incr(); let t = 0; const n = []; for (; t < this.qByteLen;) { this.v = this.hmacSync(this.v); const e = this.v.slice(); n.push(e), t += this.v.length return Et(...n) function $t(t) { return J < t && t < rt.n function Vt(t) { return J < t && t < rt.P function Lt(t, n, e, r = !0) { const { n: i } = rt, o = Ct(t, !0); if (!$t(o)) return; = kt(o, i), a = mt.BASE.multiply(o), c = Tt(a.x, i); if (c === J) return; const u = Tt(s * Tt(n + e * c, i), i); if (u === J) return; let f = new xt(c, u), h = (a.x === f.r ? 0 : 2) | Number(a.y & Q); return r && f.hasHighS() && (f = f.normalizeS(), h ^= 1), { sig: f, recovery: h } function qt(t) { if ("bigint" == typeof t) n = t; else if ("number" == typeof t && Number.isSafeInteger(t) && t > 0) n = BigInt(t); else if ("stringM if (t.length !== 2 * at) throw new Error("Expected 32 bytes of private key"); if (!(t instanceof Uint8Array)) throw new TypeError("Expected valid private key"); if (t.length !== at) throw new Error("Expected 32 bytes of private key"); if (!$t(n)) throw new Error("Expected private key: 0 < key < n"); function Ft(t) { return t instanceof mt ? (tM .assertValidity(), t) : mt.fromHex(t) function Mt(t) { if (t instanceof xt) return t.assertValidity(), t; return xt.fromDER(t) } catch (n) { return xt.fromCompact(t) function Yt(t) { const n = t instanceof Uint8Array, e = "string" == typeof t, r = (n || e) && t.length; return n ? r === ut || r === ft : e ? r === 2 * ut || r === 2 * ft : t instanceof mt function Zt(t, n, e = !1) {M if (Yt(t)) throw new TypeError("getSharedSecret: first arg must be private key"); if (!Yt(n)) throw new TypeError("getSharedSecret: second arg must be public key"); const r = Ft(n); return r.assertValidity(), r.multiply(qt(t)).toRawBytes(e) function Wt(t) { return Ht(t.length > st ? t.slice(0, st) : t) function Gt(t) { const n = Wt(t), e = Tt(n, rt.n); return Xt(e < J ? n : e) function Xt(t) { function Jt(t, n, e) { if (null == t) throw new Error(`sign: expected valid message hash, not "${t}"`); const r = zt(t), i = qt(n), o = [Xt(i), Gt(r)]; if (null != e) { !0 === e && (e = ln.randomBytes(st)); const t = zt(e); if (t.length !== st) throw new Error(`sign: Expected ${st} bytes of extra data`); return { seed: Et(...o), m: Wt(r), d: i } function Qt(t, n) M const { sig: e, recovery: r } = t, { der: i, recovered: o } = Object.assign({ canonical: !0, der: !0 }, n), s = i ? e.toDERRawBytes() : e.toCompactRawBytes(); return o ? [s, r] : s const tn = { strict: !0 }; function nn(t) { return Tt(Ht(t), rt.n) constructor(t, n) { this.r = t, this.s = n, this.assertValidity() static fromHex(t) { const n = zt(t); if (64 !=M = n.length) throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${n.length}`); const e = Ht(n.subarray(0, 32)), r = Ht(n.subarray(32, 64)); return new en(e, r) assertValidity() { const { r: t, s: n } = this; if (!Vt(t) || !$t(n)) throw new Error("Invalid signature") return Ot(this.r) + Ot(this.s) toRawBytes() { return It(this.toHex()) constructor(t, n, e = ln.randomBytes()) { if (null == t) throw new TypeError(`sign: Expected valid message, not "${t}"`); this.m = zt(t); const { x: r, scalar: i } = this.getScalar(qt(n)); if (this.px = r, this.d = i, this.rand = zt(e), 32 !== this.rand.length) throw new TypeError("sign: Expected 32 bytes of aux randomness") getScalar(t) { const n = mt.fromPrivateKey(t), e = n.hasEvenY() ? t : rt.n - t; return { point: n, scalar: e, x: n.toRawX() } initNonce(t, n) { return Ut(t ^ Ht(n)) finalizeNonce(t) { const n = Tt(Ht(t), rt.n); if (n === J) throw new Error("sign: Creation of signature failed. k is zero"); const { point: e, x: r, scalar: i } = this.getScalar(n); return { R: e, rx: r, k: i } finalizeSig(t, n, e, r) { return new en(t.x, Tt(n + e * r, rt.n)).toRawBytes() throw new Error("sign: Invalid signature produced") async calc() { const { m: t, d: n, px: e, rand: r } = this, i = ln.taggedHash, o = this.initNonce(n, await i(fn.aux, r)), { } = this.finalizeNonce(await i(fn.nonce, o, e, t)), u = nn(await i(fn.challenge, a, e, t)), f = this.finalizeSig(s, c, u, n); return await an(f, t, e) || this.error(), f const { m: t, d: n, px: e, rand: r } = this, i = ln.taggedHashSync, o = this.initNonce(n, i(fn.aux, r)), { R: s, rx: a, k: c } = this.finalizeNonce(i(fn.nonce, o, e, t)), u = nn(i(fn.challenge, a, e, t)), f = this.finalizeSig(s, c, u, n); return cn(f, t, e) || this.error(), f function on(t, n, e) { const r = t instanceof en, i = r ? t : en.fromHex(t); return r && i.assertValidity(), { ...i, m: zt(n), P: FM function sn(t, n, e, r) { const i = mt.BASE.multiplyAndAddUnsafe(n, qt(e), Tt(-r, rt.n)); return !(!i || !i.hasEvenY() || i.x !== t) async function an(t, n, e) { const { r: r, s: i, m: o, P: s } = on(t, n, e), a = nn(await ln.taggedHash(fn.challenge, Ut(r), s.toRawX(), o)); return sn(r, s, i, a) } catch (t) { function cn(t, n, e) { const { r: r, s: i, m: o, P: s } = on(t, n, e), a = nn(ln.taggedHashSync(fn.challenge, Ut(r), s.toRawX(), o)); return sn(r, s, i, a) } catch (t) { if (t instanceof dt) throw t; Signature: en, getPublicKey: function (t) { return mt.fromPrivateKey(t).toRawX() }, sign: async function (t, n, e) { return new rn(t, n, e).calc() }, verify: an, signSync: function (t, n, e)M return new rn(t, n, e).calcSync() }, verifySync: cn mt.BASE._setWindowSize(8); const fn = { challenge: "BIP0340/challenge", aux: "BIP0340/aux", nonce: "BIP0340/nonce" }, hn = {}, ln = { bytesToHex: St, hexToBytes: It, concatBytes: Et, isValidPrivateKey(t) { return qt(t), !0 } catch (t) { return !1 _bigintTo32M _normalizePrivateKey: qt, hashToPrivateKey: t => { t = zt(t); const n = at + 8; if (t.length < n || t.length > 1024) throw new Error("Expected valid bytes of private key as per FIPS 186"); return Ut(Tt(Ht(t), rt.n - Q) + Q) randomBytes: (t = 32) => X.getRandomValues(new Uint8Array(t)), randomPrivateKey: () => ln.hashToPrivateKey(ln.randomBytes(at + 8)), precompute(t = 8, n = mt.BASE) { = n === mt.BASE ? n : new mt(n.x, n.y); return e._setWindowSize(t), e.multiply(nt), e sha256: async (...t) => { const n = await X.subtle.digest("SHA-256", Et(...t)); return new Uint8Array(n) hmacSha256: async (t, ...n) => { const e = await X.subtle.importKey("raw", t, { name: "HMAC", hash: { name: "SHA-256" } }, !1, ["sign"]), r = Et(...n), i = await X.subtle.sign("HMAC", e, r); return new Uint8Array(i) sha256Sync: void 0, hmacSha256Sync: void 0, taggedHash: async (t, ...n) => { let e = hn[t]; if (void 0 === e) { const n = await ln.sha256(Uint8Array.from(t, (t => t.charCodeAt(0)))); e = Et(n, n), hn[t] = e return ln.sha256(e, ...n) taggedHashSync: (t, ...n) => { if ("function" != typeof Dt) throw new dt("sha256Sync is undefined, you need to set it"); let e = hn[t]; if (void 0 === e) { const n = Dt(Uint8Array.from(t, (t => t.charCodeAt(0)))); e = Et(n, n), hn[t] = e return Dt(e, ...n) _JacobianPoint: yt Object.defineProperties(ln, { sha256Sync: { configurable: !1, get: () => Dt, set(t) { Dt || (Dt = t) }, hmacSha256Sync: { configurable: !1, get: () => Kt, set(t) { Kt || (Kt = t) var dn = Object.freeze({ __proto__: null, CURVE: rt, Point: mt, Signature: xt, getPublicKey: function (t, n = !1) { return mt.fromPrivateKey(t).toRawBytes(n) }, getSharedSecret: Zt, recoverPublicKey: function (t, n, e, r = !1) { return mt.fromSignature(t, n, e).toRawBytes(r) }, schnorr: un, sign: async function (t, n, e = {}) { const { seed: r, m: i, d: o } = Jt(t, n, e.extraEntropy), s = new jt(ct, at); (await s.reseed(r); !(a = Lt(await s.generate(), i, o, e.canonical));) await s.reseed(); return Qt(a, e) }, signSync: function (t, n, e = {}) { const { seed: r, m: i, d: o } = Jt(t, n, e.extraEntropy), s = new jt(ct, at); for (s.reseedSync(r); !(a = Lt(s.generateSync(), i, o, e.canonical));) s.reseedSync(); return Qt(a, e) }, utils: ln, verify: function (t, n, e, r = tn) { i = Mt(t), n = zM } catch (t) { return !1 const { r: o, s: s } = i; if (r.strict && i.hasHighS()) return !1; const a = Ct(n); c = Ft(e) } catch (t) { return !1 const { n: u } = rt, f = kt(s, u), h = Tt(a * f, u), l = Tt(o * f, u), d = mt.BASE.multiplyAndAddUnsafe(c, h, l); return !!d && Tt(d.x, u) === o yn = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function gn(t) { for (const n of yn) if (n.name === t) return n.charset; throw TypeError("Charset does not exist: " + t) encode: function (t, n, e = !1) { "string" == typeof t && (t = wn.encode(t)); const r = gn(n), i = r.length, o = []; let s, a, c, u = "", f = 0; for (s = 0; s < t.length; s++) for (f = 0, a = t[s], u += a > 0 || (u.length ^ s) > 0 ? "" : "1"; f in o || a > 0;) c = o[f], c = c > 0 ? 256 * c + a : a, a = c / i | 0, o[f] = c % i, f++; for (; f-- > 0;) u += r[o[f]]; return e && u.length % 4 > 0 ? u + "=".repeat(4 - u.length % 4) : uM }, decode: function (t, n) { const e = gn(n), r = e.length, i = [], o = []; t = t.replace("=", ""); let s, a, c, u = 0; for (s = 0; s < t.length; s++) { if (u = 0, a = e.indexOf(t[s]), a < 0) throw new Error(`Character range out of bounds: ${a}`); for (a > 0 || (o.length ^ s) > 0 || o.push(0); u in i || a > 0;) c = i[u], c = c > 0 ? c * r + a : a, a = c >> 8, i[u] = c % 256, u++ for (; u-- > 0;) o.push(i[u]); return new Uint8Array(o) }, mn = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", bn = [996825010, 642813549, 513874426, 1027748829, 705979059], An = { BECH32: "bech32", BECH32M: "bech32m" }; function xn(t) { switch (t) { case An.BECH32: return 1; case An.BECH32M: return 734539939; throw new Error(`Unrecognized encoding: ${t}`) function En(t) { for (let e = 0; e < t.length; ++e) { const r = n >> 25; n = (33554431 & n) << 5 ^ t[e]; for (let t = 0; t < 5; ++t) (r >> t & 1) > 0 && (n ^= bn[t]) function vn(t) { const n = []; for (e = 0; e < t.length; ++e) n.push(t.charCodeAt(e) >> 5); for (n.push(0), e = 0; e < t.length; ++e) n.push(31 & t.charCodeAt(e)); function Sn(t, n, e, r = !0) { let o = 0, s = 0; const a = (1 << e) - 1, c = (1 << n + e - 1) - 1; for (const r of t) { if (r < 0 || r >> n > 0) return []; for (o = (o << n | r) & c, s += n; s >= e;) s -= e, i.push(o >> s & a) if (r) s > 0 && i.push(o << e - s & a); else if (s >= n || (o << e - s & a) > 0) return []; function Pn(t, n, e) { const r = n.concat(function (t, n, e) { const r = En(vn(t).concat(n).conM cat([0, 0, 0, 0, 0, 0])) ^ xn(e), i = []; for (let t = 0; t < 6; ++t) i.push(r >> 5 * (5 - t) & 31); }(t, n, e)); let i = t + "1"; for (let t = 0; t < r.length; ++t) i += mn.charAt(r[t]); function On(t, n) { const e = n > 0 ? "bech32m" : "bech32"; if (!function (t) { let n, e, r = !1, i = !1; for (n = 0; n < t.length; ++n) { if (e = t.charCodeAt(n), e < 33 || e > 126) reM e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) return !(r && i) }(t)) return { hrp: null, data: [255] }; if (!function (t) { const n = t.lastIndexOf("1"); return !(n < 1 || n + 7 > t.length || t.length > 90) }(t = t.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = t.lastIndexOf("1"), o = t.substring(0, i); for (let n = i + 1; n < t.length; ++n) { const e = M mn.indexOf(t.charAt(n)); if (-1 === e) return { hrp: null, data: [255] }; return function (t, n, e) { return En(vn(t).concat(n)) === xn(e) }(o, r, e) ? { hrp: o, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } function Un(t, n = 0) { const e = t.split("1", 1)[0], { hrp: r, data: i } = On(t, n), o = Sn(i.slice(1), 5, 8, !1), s = o.length; switch (!0) { case e !== r: new Error("Returned hrp string is invalid."); case null === o || s < 2 || s > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("Returned version bit is out of range."); case 0 === i[0] && 20 !== s && 32 !== s: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== n: case 0 !== i[0] && 1 !== n: throw new Error("Decoded versionM bit does not match."); return Uint8Array.from(o) encode: function (t, n = "bch", e = 0) { const r = Pn(n, [e, ...Sn([...t], 8, 5)], e > 0 ? "bech32m" : "bech32"); return Un(r, e), r }, decode: Un }, Bn = new TextEncoder, In = new TextDecoder; function Hn(t) { return Bn.encode(t) function zn(t) { const n = []; let e, r = 0; gth % 2 > 0) throw new Error(`Invalid hex string length: ${t.length}`); for (e = 0; e < t.length; e += 2) n[r] = parseInt(t.slice(e, e + 2), 16), r += 1; return Uint8Array.from(n) function Nn(t) { const n = []; for (; t > 0;) { const e = 255 & t; n.push(e), t = (t - e) / 256 return Uint8Array.from(n) function Tn(t) { const n = []; for (; t > 0n;) { const e = 0xffn & t; n.push(Number(e)), t = (t - e) / 256n return Uint8Array.from(n) function Rn(t) { return In.decode(t) function kn(t) { let n, e = 0; for (n = t.length - 1; n >= 0; n--) e = 256 * e + t[n]; return Number(e) function Cn(t) { let n, e = 0n; for (n = t.length - 1; n >= 0; n--) e = 256n * e + BigInt(t[n]); return BigInt(e) async function Dn(t) { rypto.subtle.digest("SHA-256", t).then((t => new Uint8Array(t))) async function Kn(t) { return Dn(await Dn(t)) const { crypto: jn } = globalThis; class $n extends Uint8Array { this.num = (t, n, e = "le") => new $n(Nn(t), n, e) this.big = (t, n, e = "le") => new $n(Tn(t), n, e) static async b58check(t) { const n = pn.decode(t, "base58"); return new $n(M await async function (t) { const n = t.slice(0, -4), e = t.slice(-4); if ((await Kn(n)).slice(0, 4).toString() !== e.toString()) throw new Error("Invalid checksum!"); return n this.buff = (t, n) => new $n(function (t) { if (t instanceof ArrayBuffer) return new Uint8Array(t); if (t instanceof Uint8Array) return t; const n = typeof t; switch (n) { case "bM return Tn(t); case "boolean": return Uint8Array.of(t); case "number": return Nn(t); case "string": return null !== t.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? zn(t) : Bn.encode(t); default: throw TypeError("Unsupported format:" + n) this.raw = (t, n) => new $n(t, n) this.str = (t, n) => new $n(Hn(t), n) this.hex = (t, n) => new $n(zn(t), n) this.json = t => new $n(Hn(JSON.stringify(t))) this.base64 = t => new $n(pn.decode(t, "base64")) this.b64url = t => new $n(pn.decode(t, "base64url")) this.bech32 = (t, n) => new $n(_n.decode(t, n)) constructor(t,M n = null, e = "be") { if (null !== n) { const e = new Uint8Array(n).fill(0); e.set(new Uint8Array(t)), t = e.buffer return super(t = "le" === e ? new Uint8Array(t).reverse() : t), this return this.toNum() return this.toBig() return this.toArr() return this.toStr() return this.toHex() return new Uint8Array(this) get hash() { return this.toHash() return this.toHash().then((t => new $n(t).hex)) toNum(t = "le") { return kn("le" === t ? this.reverse() : this) toBig(t = "le") { return Cn("le" === t ? this.reverse() : this) async toHash() { return jn.subtle.digest("SHA-256", this.raw).then((t => new Uint8Array(t))) async tob58check() { return pn.encode(await async function (t) { const n = await Kn(t); return Uint8Array.of(...t, ...n.slice(0, 4)) }(this), "base58") return Array.from(this) return Rn(this) return function (t) { const n = M for (e = 0; e < t.length; e++) n.push(t[e].toString(16).padStart(2, "0")); return n.join("") return JSON.parse(Rn(this)) return new Uint8Array(this) toB64url() { return pn.encode(this, "base64url") toBase64(t) { return pn.encode(this, "base64", t) toBech32(t, n) { return _n.encode(this, t, n) prepend(t) { return $n.of(...t, ...this) return $n.of(...this, ...t) slice(t, n) { return new $n(new Uint8Array(this).slice(t, n)) return new $n(new Uint8Array(this).reverse()) write(t, n) { this.set(t, n) prependVarint(t = this.length) { return $n.of(...$n.readVarinM static from(t) { return new $n(Uint8Array.from(t)) static of(...t) { return new $n(Uint8Array.of(...t)) static join(t) { let n, e = 0; const r = t.reduce(((t, n) => t + n.length), 0), i = new Uint8Array(r); for (const r of t) for (n = 0; n < r.length; e++, n++) i[e] = r[n]; return new $n(i, r) static readVarint(t) { if (t < 253) return $nM if (t < 65536) return $n.of(253, ...$n.num(t, 2)); if (t < 4294967296) return $n.of(254, ...$n.num(t, 4)); if (t < 0x10000000000000000) return $n.of(255, ...$n.num(t, 8)); throw new Error(`Value is too large: ${t}`) static random(t = 32) { return new $n(jn.getRandomValues(new Uint8Array(t))) this.encode = Hn this.decode = Rn static normalize(t, n) { if (t instanceof Uint8Array) return t; if ("string" == typeof t) return $n.hex(t, n).toBytes(); if ("number" == typeof t) return $n.num(t, n).toBytes(); if ("bigint" == typeof t) return $n.big(t, n).toBytes(); throw TypeError("Unrecognized format: " + typeof t) static serialize(t) { if ("string" == typeof t) return $n.str(t).toBytes(); if ("object" == typeof t) { if (t instanceof M Uint8Array) return t; return $n.json(t).toBytes() } catch { throw TypeError("Object is not serializable.") throw TypeError("Unrecognized format: " + typeof t) static revitalize(t) { if (t instanceof Uint8Array && (t = Rn(t)), "string" == typeof t) try { return JSON.parse(t) return t const Vn = globalThis.crypto; async function Ln(t, n) { return Zt($n.normalize(t), $n.normalize(n), !0) async function qn(t) { return Vn.subtle.importKey("raw", $n.normalize(t), { name: "AES-CBC" }, !0, ["encrypt", "decrypt"]) ecdh: Ln, import: qn, export: async function (t) { return Vn.subtle.exportKey("raw", t).then((t => new Uint8Array(t))) }, hmac: async function (t, n = "SHA-256") { e = { name: "HMAC", hash: n }; return Vn.subtle.importKey("raw", $n.normalize(t), e, !1, ["sign", "verify"]) }, shared: async function (t, n) { return qn((await Ln(t, n)).slice(1, 33)) }, generate: async function () { return qn($n.random(32)) }, normalize: async function (t) { return t instanceof CryptoKey ? t : Fn.import(t) class Mn extends Uint8Array { this.N = rt.n static mod(t, n = Mn.N) { return ln.mod(t, n) this.isField = t => t instanceof Mn static normalize(t) { return t = Zn(t), t = Mn.mod(t), t = ln._normalizePrivateKey(t), $n.big(t, 32).raw static validate(t) { return ln.isValidPrivateKey(t) constructor(t) { super(t = Mn.normalize(t)) get buff() { return new $n(this) return this return this.buff.toBig() get point() { return Yn.fromNum(this.num) get hasOddY() { return this.point.hasOddY get negated() { return this.hasOddY ? this.negate() : this return new Mn(t).num > this.num return new Mn(t).num < this.num return new Mn(t).num === this.num return new Mn(t).num !== this.num const n = new Mn(t); return new Mn(this.num + n.num) const n = new Mn(t); return new Mn(this.num - n.num) const n = new Mn(t); return new Mn(this.num * n.num) pow(t, n = Mn.N - 1n) { const e = new MnM (t), r = Mn.mod(e.num, n); return new Mn(this.num ** r) const n = new Mn(t), e = this.pow(n.num, Mn.N - 2n); return new Mn(this.num * e.num) return new Mn(Mn.N - this.num) this.N = rt.n static validate(t) { t = Zn(t); const n = $n.big(t).toHex(); return mt.fromHex(M n).assertValidity(), !0 return !1 static fromNum(t) { t = Zn(t); const n = ln.mod(t, Yn.N), e = mt.BASE.multiply(n); return new Yn(e.x, e.y) static fromX(t) { t = Zn(t); const n = $n.big(t).toHex(); return Yn.from(mt.fromHex(n)) static from(t) { return new Yn(t.x, t.y) constructor(t, n) { p = new mt(t, n), this.__x = this.__p.x, this.__y = this.__p.y, this.__p.assertValidity() return this.__p get buff() { return new $n(this.rawX.slice(1)) return this.buff.hex get hasOddY() { return !this.__p.hasEvenY() get rawX() { const t = this.__p.hasEvenY() ? 2 : 3, n = $n.big(this.__x); return Uint8Array.of(t, ...n) get rawY() { return $n.big(this.__y) return this.__x return this.__y return t instanceof Yn ? this.p.equals(new mt(t.x, t.y)) : t instanceof Uint8Array ? this.x.toString() === t.toString() : "number" == typeof t ? BigInt(t) === this.x : t === this.x return t instanceof Yn ? Yn.from(this.p.add(t.p)) : Yn.from(this.p.aM dd(Yn.fromNum(t).p)) return t instanceof Yn ? Yn.from(this.p.subtract(t.p)) : Yn.from(this.p.subtract(Yn.fromNum(t).p)) return t instanceof Yn ? Yn.from(this.p.multiply(t.x)) : Yn.from(this.p.multiply(Zn(t))) return Yn.from(this.__p.negate()) function Zn(t) { if (t instanceof Uint8Array) return $n.raw(t).big; if ("string" == typeof t) return $M if ("number" == typeof t) return BigInt(t); if ("bigint" == typeof t) return t; throw TypeError("Invalid input type:" + typeof t) function Wn(t) { for (let e = t.length - 1; e >= 0; e--) n = 256n * n + BigInt(t[e]); return BigInt(n) function Gn(t, n = 0) { const e = []; for (; t > 0;) { const n = 0xffn & t; e.push(n), t = (t - n) / 256n = Uint8Array.from(e.map((t => Number(t)))); if (0 !== n) { const t = new Uint8Array(n); t.set(r), r = t const Xn = [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n, 10n, 11n, 12n, 13n, 14n, 15n, 7n, 4n, 13n, 1n, 10n, 6n, 15n, 3n, 12n, 0n, 9n, 5n, 2n, 14n, 11n, 8n, 3n, 10n, 14n, 4n, 9n, 15n, 8n, 1n, 2n, 7n, 0n, 6n, 13n, 11n, 5n, 12n, 1n, 9n, 11n, 10n, 0n, 8n, 12n, 4n, 13n, 3n, 7n, 15n, 14n, 5n, 6n, 2n, 4n, 0n, 5n, 9n, 7n, 12n, 2n, 10n, 14n, 1n, 3nM , 8n, 11n, 6n, 15n, 13n], Jn = [5n, 14n, 7n, 0n, 9n, 2n, 11n, 4n, 13n, 6n, 15n, 8n, 1n, 10n, 3n, 12n, 6n, 11n, 3n, 7n, 0n, 13n, 5n, 10n, 14n, 15n, 8n, 12n, 4n, 9n, 1n, 2n, 15n, 5n, 1n, 3n, 7n, 14n, 6n, 9n, 11n, 8n, 12n, 2n, 10n, 0n, 4n, 13n, 8n, 6n, 4n, 1n, 3n, 11n, 15n, 0n, 5n, 12n, 2n, 13n, 9n, 7n, 10n, 14n, 12n, 15n, 10n, 4n, 1n, 5n, 8n, 7n, 6n, 2n, 13n, 14n, 0n, 3n, 9n, 11n], Qn = [11n, 14n, 15n, 12n, 5n, 8n, 7n, 9n, 11n, 13n, 14n, 15n, 6n, 7n, 9n, 8n, 7n, 6n, 8n, 13n, 11n, 9n, 7n, 15n, 7n, 12M n, 15n, 9n, 11n, 7n, 13n, 12n, 11n, 13n, 6n, 7n, 14n, 9n, 13n, 15n, 14n, 8n, 13n, 6n, 5n, 12n, 7n, 5n, 11n, 12n, 14n, 15n, 14n, 15n, 9n, 8n, 9n, 14n, 5n, 6n, 8n, 6n, 5n, 12n, 9n, 15n, 5n, 11n, 6n, 8n, 13n, 12n, 5n, 12n, 13n, 14n, 11n, 8n, 5n, 6n], te = [8n, 9n, 9n, 11n, 13n, 15n, 15n, 5n, 7n, 7n, 8n, 11n, 14n, 14n, 12n, 6n, 9n, 13n, 15n, 7n, 12n, 8n, 9n, 11n, 7n, 7n, 12n, 7n, 6n, 15n, 13n, 11n, 9n, 7n, 15n, 11n, 8n, 6n, 6n, 14n, 12n, 13n, 5n, 14n, 13n, 13n, 7n, 5n, 15n, 5n, 8n, 11n, 14n, 14n, 6n, 14n, 6n, M 9n, 12n, 9n, 12n, 5n, 15n, 8n, 8n, 5n, 12n, 9n, 12n, 5n, 14n, 6n, 8n, 13n, 6n, 5n, 15n, 13n, 11n, 11n], ne = [0n, 0x5a827999n, 0x6ed9eba1n, 0x8f1bbcdcn, 0xa953fd4en], ee = [0x50a28be6n, 0x5c4dd124n, 0x6d703ef3n, 0x7a6d76e9n, 0n]; function re(t, n, e, r) { switch (!0) { case 0n === r: return t ^ n ^ e; case 1n === r: return t & n | ~t & e; case 2n === r: return (t | ~n) ^ e; case 3n === r: return t & e | n & ~e; case 4n === r: return t ^ (n | ~e); throw new TypeError("Unknown I value: " + String(r)) function ie(t, n) { return 0xffffffffn & (t << n | (0xffffffffn & t) >> 32n - n) function oe(t, n, e, r, i, o) { const s = []; let a, c, u, f, h, l, d, w = t, y = n, g = e, p = r, m = i, b = t, A = n, x = e, E = r, v = i; for (let t = 0; t < 16; t++) { const n = Wn(o.slice(4 * t, 4 * (t + 1))); for (let t = 0; t < 80; t++) a = BigInt(t) >> 4n, f = s[Number(Xn[t])], h = ne[Number(a)], l = s[Number(Jn[t])], d = ee[Number(a)], w = ie(w + re(y, g, p, a) + f + h, Qn[t]) + m, c = m, m = p, p = ie(g, 10n), g = y, y = w, w = c, b = ie(b + re(A, x, E, 4n - a) + l + d, te[t]) + v, u = v, v = E, E = ie(x, 10n), x = A, A = b, b = u; return [n + g + E, e + p + v, r + m + b, i + w + A, t + y + x] const se = glM async function ae(t, n = "SHA-256", e = 1, r = (t => t)) { let i, o = t instanceof ArrayBuffer ? t : $n.normalize(t).buffer; for (i = 0; i < e; i++) o = await se.subtle.digest(n, o), r(o); return new Uint8Array(o) async function ce(t) { return ae(t, "SHA-256") function ue(t) { return function (t) { let n = [0x67452301n, 0xefcdab89n, 0x98badcfen, 0x10325476n, 0xc3d2e1f0n]; for (let e = 0; M e < t.length >> 6; e++) n = oe(...n, t.slice(64 * e, 64 * (e + 1))); const e = [128, ...new Array(119 - t.length & 63).fill(0)], r = Uint8Array.from([...t.slice(-64 & t.length), ...e, ...Gn(BigInt(8 * t.length), 8)]); for (let t = 0; t < r.length >> 6; t++) n = oe(...n, r.slice(64 * t, 64 * (t + 1))); const i = []; for (let t = 0; t < n.length; t++) { const e = 0xffffffffn & n[t]; i.push(...Gn(e, 4)) return UiM }(t = $n.normalize(t)) data: async function (t) { return ce($n.serialize(t)).then((t => new Uint8Array(t))) }, digest: ae, ripe160: ue, sha256: ce, sha512: async function (t) { return ae(t, "SHA-512") }, hash160: async function (t) { return ue(await ce(t)) }, hash256: async function (t) { return ae(t, "SHA-256", 2) }, hmac256: async function (t, n) { const e = M await Fn.hmac(t, "SHA-256"); return se.subtle.sign("HMAC", e, $n.normalize(n)).then((t => new Uint8Array(t))) }, hmac512: async function (t, n) { const e = await Fn.hmac(t, "SHA-512"); return se.subtle.sign("HMAC", e, $n.normalize(n)).then((t => new Uint8Array(t))) }, he = [1, 2, 3, 129, 130, 131]; function le(t, n) { if (n) throw new Error(t); const de = 192, we = new TextEncoder; let e = new Mn(t); return e.point.hasOddY && (e = e.negate()), e.add(n) function ge(t, n) { return Yn.fromX(t).add(n).rawX async function pe(t, n = [], e = !1) { const r = _.normalize(t), i = n.length > 0 ? await me(n) : new Uint8Array, o = e ? dn.getPublicKey(r, !0).slice(1) : r, s = await Ee(o, i); if (e) return [_.raw(ye(r, s)).hex, 0]; const t = _.raw(ge(r, s)); return [t.slice(1M ).hex, t.slice(0, 1).num] async function me(t) { return Se(t).then((t => _.hex(t[0]))) async function be(t) { const n = await fe.sha256(we.encode(t)); return Uint8Array.of(...n, ...n) // Rarity Garden Hack async function Ae(t, n = de) { let leafed = await be("TapLeaf"); const uint8 = new Uint8Array(leafed.length); for (let i = 0; i < leafed.length; i++) { uint8[i] = leafed[i];M let tn = function (t = 192) { return 254 & t const uint8_tn = new Uint8Array(1); uint8_tn[0] = tn; let normed = _.normalize(t); const uint8_normed = new Uint8Array(normed.length); for (let i = 0; i < uint8_normed.length; i++) { uint8_normed[i] = normed[i]; var uint8_new = new Uint8Array(uint8.length + uint8_normed.length + uint8_tn.length); uint8_new.set(uint8); 8_new.set(uint8_tn, uint8.length); uint8_new.set(uint8_normed, uint8.length + uint8_tn.length); return fe.sha256(uint8_new).then((t => _.raw(t).hex)) async function Ae2(t, n = de) { return fe.sha256(Uint8Array.of(...await be("TapLeaf"), function (t = 192) { return 254 & t }(n), ..._.normalize(t))).then((t => _.raw(t).hex)) async function xe(t, n) { return n < t && ([t, n] = [n, t]), fe.sha256(Uint8Array.of(...await be("TapM Branch"), ..._.hex(t).raw, ..._.hex(n).raw)).then((t => _.raw(t).hex)) async function Ee(t, n) { return fe.sha256(Uint8Array.of(...await be("TapTweak"), ..._.normalize(t), ..._.normalize(n))) async function ve(t, n, e) { const r = new B(_.normalize(n)), [i, o] = (s = r.read(1).num) % 2 == 0 ? [s, 2] : [s - 1, 3]; const a = r.read(32), c = _.of(o, ..._.normalize(t)), u = []; for (; r.size >= 32;) u.push(r.readM if (0 !== r.size) throw new Error("Invalid control block size!"); for (const t of u) f = await xe(f, t); const h = ge(a, await Ee(a, _.hex(f))); return _.raw(h).hex === _.raw(c).hex async function Se(t, n = null, e = []) { const r = [], i = []; for (let i = 0; i < t.length; i++) { const o = t[i]; if (Array.isArray(o)) { const [t, i, s] = await Se(o, n); r.push(t), n = i, e.push(...s) } else r.push(o) if (1 === r.length) return [r[0], n, e]; r.sort(), r.length % 2 != 0 && r.push(r[r.length - 1]); for (let t = 0; t < r.length - 1; t += 2) { const o = await xe(r[t], r[t + 1]); i.push(o), "string" == typeof n && (n === r[t] ? (e.push(r[t + 1]), n = o) : n === r[t + 1] && (e.push(r[t]), n = o)) return Se(i, n, e) const Pe = [0, 1, 2, 3, 129, 130, 131]; async function Oe(t, n, e = {}) {M ("string" == typeof t || t instanceof Uint8Array) && (t = L(t)); extention: r, sigflag: i = 0, extflag: o = 0, key_version: s = 0, separator_pos: a = 4294967295 } = e, { version: c, input: u = [], output: f = [], locktime: h } = t; if (n >= u.length) throw new Error("Index out of bounds: " + String(n)); if (!Pe.includes(i)) throw new Error("Invalid hash type: " + String(i)); if (o < 0 || o > 127) thM row new Error("Extention flag out of range: " + String(o)); const { txid: l, vout: d, sequence: w, witness: y = [] } = u[n], g = 128 == (128 & i), p = await async function (t) { if (void 0 === t) return; if (t.length < 2) return; let n = t.at(-1); "string" == typeof n && (n = _.hex(n)); if (n instanceof Uint8Array && 80 === n[0]) return _.raw(n).prefixSize("be").digest; }(y), m = 2 * (o + (void 0 !== M r ? 1 : 0)) + (void 0 !== p ? 1 : 0), b = [await be("TapSighash"), _.num(0, 1), _.num(i, 1), k(c), V(h)]; const t = u.map((t => Ue(t))); b.push(await async function (t) { const n = []; for (const { txid: e, vout: r } of t) n.push(C(e)), n.push(D(r)); return fe.sha256(_.join(n)) }(u), await async function (t) { const n = []; for (const { value: e } of t) n.push(j(e)); return feM }(t), await async function (t) { const n = []; for (const { scriptPubKey: e } of t) n.push(N(e)); return fe.sha256(_.join(n)) }(t), await async function (t) { const n = []; for (const { sequence: e } of t) n.push(K(e)); return fe.sha256(_.join(n)) if (((3 & i) < 2 || (3 & i) > 3) && b.push(await async function (t) { const n = []; for (constM { value: e, scriptPubKey: r } of t) n.push(j(e)), n.push(N(r)); return fe.sha256(_.join(n)) }(f)), b.push(_.num(m, 1)), g) { const { value: t, scriptPubKey: e } = Ue(u[n]); b.push(C(l), D(d), j(t), N(e), K(w)) } else b.push(_.num(n, 4).reverse()); return void 0 !== p && b.push(p), 3 == (3 & i) && b.push(await async function (t) { return fe.sha256(_.of(...j(t.value), ...N(t.scriptPubKey))) }(f[n])), void 0 !== r && b.push(_.normalize(r)M , _.num(s), _.num(a, 4)), fe.sha256(_.join(b)) function Ue(t) { if (void 0 === t.prevout) throw new Error("Prevout data missing for input: " + String(t.txid)); return t.prevout encode: N, decode: function (t) { return function (t, n = "asm") { const e = new B(t), r = [], i = e.size; let o, s, a, c = 0; for (; c < i;) switch (o = e.read(1).num, s = W(o), c++, s) { case "varint"M r.push(e.read(o).toHex()), c += o; break; case "pushdata1": a = e.read(1).reverse().num, r.push(e.read(a).toHex()), c += a + 1; break; case "pushdata2": a = e.read(2).reverse().num, r.push(e.read(a).toHex()), c += a + 2; break; case "pushdata4": a = e.read(4).reverse().num, r.push(e.read(a).toHex()), c += a + 4; break; if (!G(o)) throw new Error(`Invalid OPCODE: ${o}`); "asm" === n ? r.push(H(o)) : r.push(o); break; default: throw new Error(`Word type undefined: ${o}`) return r }(_.normalize(t)) hash: async function (t, n, e, r, i) { if (!he.includes(i)) throw new Error("Invalid hash type: " + String(i)); const { M version: o, input: s, output: a, locktime: c } = t, { txid: u, vout: f, sequence: h } = s[n], l = i > 128, d = [k(o)]; return d.push(await async function (t, n) { if (!0 === n) return _.num(0, 32); const e = []; for (const { txid: n, vout: r } of t) e.push(C(n)), e.push(D(r)); return fe.hash256(_.join(e)) }(s, l), await async function (t, n) { if (1 !== n) return _.num(0, 32); const e =M for (const { sequence: n } of t) e.push(K(n)); return fe.hash256(_.join(e)) }(s, i), C(u), D(f), N(r, !0), j(e), K(h), await async function (t, n, e) { const r = []; if (1 === e) { for (const { value: n, scriptPubKey: e } of t) r.push(j(n)), r.push(N(e)); return fe.hash256(_.join(r)) if (3 === e && n < t.length) { const { value: e, scriptPubKey: i } = t[n];M return r.push(j(e)), r.push(N(i)), fe.hash256(_.join(r)) return _.num(0, 32) }(a, n, i), V(c), _.num(i, 4).reverse()), fe.hash256(_.join(d)) }, taproot: { hash: Oe, sign: async function (t, n, e, r = {}) { const { sigflag: i = 0 } = r, o = dn.schnorr.sign, s = await Oe(n, e, r), a = await o(s, t); return 0 === i ? _.raw(a).hex : _.of(...a, i).hex }, verify: async function (t, n, e = {M const i = function (t) { return ("string" == typeof t || t instanceof Uint8Array) && (t = L(t)), { ...t } }(t), { witness: o } = i.input[n]; if (!Array.isArray(o) || o.length < 1) return le("Invalid witness data: " + String(o), r); if (80 === Z(o[o.length - 1])[0] && o.pop(), o.length < 1) return le("Invalid witness data: " + String(o), r); const s = new B(Z(o[0])), a = s.read(64), c = i.input[n].prevout, u = Z(c?.scriptPubM let f, h; if (1 === s.size && (e.sigflag = s.read(1).num, 0 === e.sigflag)) return le("0x00 is not a valid appended sigflag!", r); if (o.length > 1 && (h = Z(o.pop())), o.length > 1 && h instanceof Uint8Array) { const t = N(o.pop()), n = 254 & h[0]; f = await Ae(t, n), e.extention = f const l = await Oe(i, n, e), d = dn.schnorr.verify; return await d(a, l, u) ? !(void 0 !== h && void 0 !== f M && !await ve(u, h, f)) || le("Invalid cblock!", r) : le("Invalid signature!", r) getTag: be, getLeaf: Ae, getBranch: xe, getRoot: me, getTweak: Ee, getPubkey: async function (t, n = []) { return pe(t, n) }, getSeckey: async function (t, n = []) { return pe(t, n, !0).then((t => t[0])) }, getPath: async function t(n, e, r = [e], i = de, o = 0) { const s = _.normalize(n), [a, c, u] = await Se(r, e), f = [_.num(i + funcM if (0 === t || 1 === t) return t; if (2 === t || "02" === t) return 0; if (3 === t || "03" === t) return 1; throw new Error("Invalid parity bit:" + String(t)) }(o)), _.normalize(n)]; r.length > 1 && u.forEach((t => f.push(_.hex(t)))); const h = _.join(f), l = ge(s, await Ee(s, _.hex(a))).slice(1); if (!await ve(l, h, e)) { if (0 === o) return t(n, e, r, i, 1); throw new Error("PatM h checking failed! Unable to generate path.") return h.hex }, checkPath: ve, tweakSeckey: ye, tweakPubkey: ge, encodeAddress: function (t, n = "bc") { return (t = _.normalize(t)).length > 32 && (t = t.slice(1, 33)), _.raw(t).toBech32(n, 1) }, decodeAddress: function (t) { return _.bech32(t, 1) encode: function (t, n) { const { version: e, input: r, output: i, locktime: o } = t, s = !0 !== n && function (tM for (const n of t) { const { witness: t } = n; if ("string" == typeof t || t instanceof Uint8Array || Array.isArray(t) && t.length > 0) return !0 return !1 }(r), a = [k(e)]; s && a.push(_.hex("0001")), a.push(function (t) { const n = [_.readSize(t.length)]; for (const e of t) { const { txid: t, vout: r, scriptSig: i, sequence: o } = e; n.push(C(t)), n.push(D(r)), nM .push(N(i)), n.push(K(o)) return _.join(n) }(r)), a.push(function (t) { const n = [_.readSize(t.length)]; for (const e of t) { const { address: t, value: r, scriptPubKey: i } = e; n.push(j(r)), void 0 !== t ? n.push(_.bech32(t).raw) : n.push(N(i)) return _.join(n) for (const t of r) s && void 0 !== t?.witness && a.push($(t.witness)); return a.push(V(o)), M }, decode: L return t.Script = _e, t.Sig = Be, t.Tap = Ie, t.Tx = He, t <script> const BTON = window.bton </script> <script>var cryptoUtils = function (n) { const { crypto: t } = globalThis, e = BigInt(0), r = BigInt(1), i = BigInt(2), s = BigInt(3), o = BigInt(8), a = Object.freeze({ a: e, b: BigInt(7), P: BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), n: BigInt("0xfffffffffffffffffffffffffM ffffffebaaedce6af48a03bbfd25e8cd0364141"), h: r, Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee") }), c = (n, t) => (n + t / i) / t, u = { beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), splitScalar(n) { const { n: t } = a, e = BigInt("0x3086d221a7d46bcde86c90e492M 84eb15"), i = -r * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), s = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), o = e, u = BigInt("0x100000000000000000000000000000000"), f = c(o * n, t), h = c(-i * n, t); let l = $(n - f * e - h * s, t), y = $(-f * i - h * o, t); const d = l > u, g = y > u; if (d && (l = t - l), g && (y = t - y), l > u || y > u) throw new Error("splitScalarEndo: Endomorphism failed, k=" + n); return { k1neg: d, k1: l, k2neg: g, k2: y } } }, f = 32, h = 32, l = 32, y = f + 1, d = 2 * f + 1; funcM tion g(n) { const { a: t, b: e } = a, r = $(n * n), i = $(r * n); return $(i + t * n + e) } const w = a.a === e; class m extends Error { constructor(n) { super(n) } } function p(n) { if (!(n instanceof b)) throw new TypeError("JacobianPoint expected") } class b { constructor(n, t, e) { this.x = n, this.y = t, this.z = e } static get BASE() { return new b(a.Gx, a.Gy, r) } static get ZERO() { return new b(e, r, e) } static fromAffine(n) { if (!(n instanceof E)) throw new TypeError("JacobianPoint#fromAffine: expected M Point"); return n.equals(E.ZERO) ? b.ZERO : new b(n.x, n.y, r) } static toAffineBatch(n) { const t = function (n, t = a.P) { const i = new Array(n.length), s = V(n.reduce(((n, r, s) => r === e ? n : (i[s] = n, $(n * r, t))), r), t); return n.reduceRight(((n, r, s) => r === e ? n : (i[s] = $(n * i[s], t), $(n * r, t))), s), i }(n.map((n => n.z))); return n.map(((n, e) => n.toAffine(t[e]))) } static normalizeZ(n) { return b.toAffineBatch(n).map(b.fromAffine) } equals(n) { p(n); const { x: t, y: e, z: r } = this, { x:M i, y: s, z: o } = n, a = $(r * r), c = $(o * o), u = $(t * c), f = $(i * a), h = $($(e * o) * c), l = $($(s * r) * a); return u === f && h === l } negate() { return new b(this.x, $(-this.y), this.z) } double() { const { x: n, y: t, z: e } = this, r = $(n * n), a = $(t * t), c = $(a * a), u = n + a, f = $(i * ($(u * u) - r - c)), h = $(s * r), l = $(h * h), y = $(l - i * f), d = $(h * (f - y) - o * c), g = $(i * t * e); return new b(y, d, g) } add(n) { p(n); const { x: t, y: r, z: s } = this, { x: o, y: a, z: c } =M n; if (o === e || a === e) return this; if (t === e || r === e) return n; const u = $(s * s), f = $(c * c), h = $(t * f), l = $(o * u), y = $($(r * c) * f), d = $($(a * s) * u), g = $(l - h), w = $(d - y); if (g === e) return w === e ? this.double() : b.ZERO; const m = $(g * g), x = $(g * m), A = $(h * m), E = $(w * w - x - i * A), v = $(w * (A - E) - y * x), S = $(s * c * g); return new b(E, v, S) } subtract(n) { return this.add(n.negate()) } multiplyUnsafe(n) { const t = b.ZERO; if ("bigint" == typeof n && n ===M e) return t; let i = O(n); if (i === r) return this; if (!w) { let n = t, s = this; for (; i > e;)i & r && (n = n.add(s)), s = s.double(), i >>= r; return n } let { k1neg: s, k1: o, k2neg: a, k2: c } = u.splitScalar(i), f = t, h = t, l = this; for (; o > e || c > e;)o & r && (f = f.add(l)), c & r && (h = h.add(l)), l = l.double(), o >>= r, c >>= r; return s && (f = f.negate()), a && (h = h.negate()), h = new b($(h.x * u.beta), h.y, h.z), f.add(h) } precomputeWindow(n) { const t = w ? 128 / n + 1 : 256 / n + 1, e =M []; let r = this, i = r; for (let s = 0; s < t; s++) { i = r, e.push(i); for (let t = 1; t < 2 ** (n - 1); t++)i = i.add(r), e.push(i); r = i.double() } return e } wNAF(n, t) { !t && this.equals(b.BASE) && (t = E.BASE); const e = t && t._WINDOW_SIZE || 1; if (256 % e) throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2"); let i = t && A.get(t); i || (i = this.precomputeWindow(e), t && 1 !== e && (i = b.normalizeZ(i), A.set(t, i))); let s = b.ZERO, o = b.BASE; const a = 1 + (w ? 128 / e :M 256 / e), c = 2 ** (e - 1), u = BigInt(2 ** e - 1), f = 2 ** e, h = BigInt(e); for (let t = 0; t < a; t++) { const e = t * c; let a = Number(n & u); n >>= h, a > c && (a -= f, n += r); const l = e, y = e + Math.abs(a) - 1, d = t % 2 != 0, g = a < 0; 0 === a ? o = o.add(x(d, i[l])) : s = s.add(x(g, i[y])) } return { p: s, f: o } } multiply(n, t) { let e, r, i = O(n); if (w) { const { k1neg: n, k1: s, k2neg: o, k2: a } = u.splitScalar(i); let { p: c, f: f } = this.wNAF(s, t), { p: h, f: l } = this.wNAF(a, t); c = x(M n, c), h = x(o, h), h = new b($(h.x * u.beta), h.y, h.z), e = c.add(h), r = f.add(l) } else { const { p: n, f: s } = this.wNAF(i, t); e = n, r = s } return b.normalizeZ([e, r])[0] } toAffine(n) { const { x: t, y: e, z: i } = this, s = this.equals(b.ZERO); null == n && (n = s ? o : V(i)); const a = n, c = $(a * a), u = $(c * a), f = $(t * c), h = $(e * u), l = $(i * a); if (s) return E.ZERO; if (l !== r) throw new Error("invZ was invalid"); return new E(f, h) } } function x(n, t) { const e = t.negate(); return n ? eM : t } const A = new WeakMap; let E = class { constructor(n, t) { this.x = n, this.y = t } _setWindowSize(n) { this._WINDOW_SIZE = n, A.delete(this) } static get BASE() { return new E(a.Gx, a.Gy) } static get ZERO() { return new E(e, e) } hasEvenY() { return this.y % i === e } static fromCompressedHex(n) { const t = 32 === n.length, e = C(t ? n : n.subarray(1)); if (!Y(e)) throw new Error("Point is not on curve"); let o = function (n) { const { P: t } = a, e = BigInt(6), r = BigInt(11), o = BigInt(22), c = BigInt(2M 3), u = BigInt(44), f = BigInt(88), h = n * n * n % t, l = h * h * n % t, y = K(l, s) * l % t, d = K(y, s) * l % t, g = K(d, i) * h % t, w = K(g, r) * g % t, m = K(w, o) * w % t, p = K(m, u) * m % t, b = K(p, f) * p % t, x = K(b, u) * m % t, A = K(x, s) * l % t, E = K(A, c) * w % t, v = K(E, e) * h % t, S = K(v, i); if (S * S % t !== n) throw new Error("Cannot find square root"); return S }(g(e)); const c = (o & r) === r; if (t) c && (o = $(-o)); else { 1 == (1 & n[0]) !== c && (o = $(-o)) } const u = new E(e, o); M return u.assertValidity(), u } static fromUncompressedHex(n) { const t = C(n.subarray(1, f + 1)), e = C(n.subarray(f + 1, 2 * f + 1)), r = new E(t, e); return r.assertValidity(), r } static fromHex(n) { const t = T(n), e = t.length, r = t[0]; if (e === f) return this.fromCompressedHex(t); if (e === y && (2 === r || 3 === r)) return this.fromCompressedHex(t); if (e === d && 4 === r) return this.fromUncompressedHex(t); throw new Error(`Point.fromHex: received invalid point. Expected 32-${y} compressed bytes or ${d} uM ncompressed bytes, not ${e}`) } static fromPrivateKey(n) { return E.BASE.multiply(F(n)) } static fromSignature(n, t, e) { const { r: r, s: i } = J(t); if (![0, 1, 2, 3].includes(e)) throw new Error("Cannot recover: invalid recovery bit"); const s = q(T(n)), { n: o } = a, c = 2 === e || 3 === e ? r + o : r, u = V(c, o), f = $(-s * u, o), h = $(i * u, o), l = 1 & e ? "03" : "02", y = E.fromHex(l + N(c)), d = E.BASE.multiplyAndAddUnsafe(y, f, h); if (!d) throw new Error("Cannot recover signature: point at infinify"); M return d.assertValidity(), d } toRawBytes(n = !1) { return P(this.toHex(n)) } toHex(n = !1) { const t = N(this.x); if (n) { return `${this.hasEvenY() ? "02" : "03"}${t}` } return `04${t}${N(this.y)}` } toHexX() { return this.toHex(!0).slice(2) } toRawX() { return this.toRawBytes(!0).slice(1) } assertValidity() { const n = "Point is not on elliptic curve", { x: t, y: r } = this; if (!Y(t) || !Y(r)) throw new Error(n); const i = $(r * r); if ($(i - g(t)) !== e) throw new Error(n) } equals(n) { return this.x === n.x &M & this.y === n.y } negate() { return new E(this.x, $(-this.y)) } double() { return b.fromAffine(this).double().toAffine() } add(n) { return b.fromAffine(this).add(b.fromAffine(n)).toAffine() } subtract(n) { return this.add(n.negate()) } multiply(n) { return b.fromAffine(this).multiply(n, this).toAffine() } multiplyAndAddUnsafe(n, t, i) { const s = b.fromAffine(this), o = t === e || t === r || this !== E.BASE ? s.multiplyUnsafe(t) : s.multiply(t), a = b.fromAffine(n).multiplyUnsafe(i), c = o.add(a); return c.equals(M b.ZERO) ? void 0 : c.toAffine() } }; function v(n) { return Number.parseInt(n[0], 16) >= 8 ? "00" + n : n } function S(n) { if (n.length < 2 || 2 !== n[0]) throw new Error(`Invalid signature integer tag: ${I(n)}`); const t = n[1], e = n.subarray(2, t + 2); if (!t || e.length !== t) throw new Error("Invalid signature integer: wrong length"); if (0 === e[0] && e[1] <= 127) throw new Error("Invalid signature integer: trailing length"); return { data: C(e), left: n.subarray(t + 2) } } class B { constructor(n, t) { thisM .r = n, this.s = t, this.assertValidity() } static fromCompact(n) { const t = n instanceof Uint8Array, e = "Signature.fromCompact"; if ("string" != typeof n && !t) throw new TypeError(`${e}: Expected string or Uint8Array`); const r = t ? I(n) : n; if (128 !== r.length) throw new Error(`${e}: Expected 64-byte hex`); return new B(k(r.slice(0, 64)), k(r.slice(64, 128))) } static fromDER(n) { const t = n instanceof Uint8Array; if ("string" != typeof n && !t) throw new TypeError("Signature.fromDER: Expected string or UiM nt8Array"); const { r: e, s: r } = function (n) { if (n.length < 2 || 48 != n[0]) throw new Error(`Invalid signature tag: ${I(n)}`); if (n[1] !== n.length - 2) throw new Error("Invalid signature: incorrect length"); const { data: t, left: e } = S(n.subarray(2)), { data: r, left: i } = S(e); if (i.length) throw new Error(`Invalid signature: left bytes after parsing: ${I(i)}`); return { r: t, s: r } }(t ? n : P(n)); return new B(e, r) } static fromHex(n) { return this.fromDER(n) } assertValidity() { const { r: n, s: M t } = this; if (!X(n)) throw new Error("Invalid Signature: r must be 0 < r < n"); if (!X(t)) throw new Error("Invalid Signature: s must be 0 < s < n") } hasHighS() { const n = a.n >> r; return this.s > n } normalizeS() { return this.hasHighS() ? new B(this.r, $(-this.s, a.n)) : this } toDERRawBytes() { return P(this.toDERHex()) } toDERHex() { const n = v(_(this.s)), t = v(_(this.r)), e = n.length / 2, r = t.length / 2, i = _(e), s = _(r); return `30${_(r + e + 4)}02${s}${t}02${i}${n}` } toRawBytes() { return this.tM oDERRawBytes() } toHex() { return this.toDERHex() } toCompactRawBytes() { return P(this.toCompactHex()) } toCompactHex() { return N(this.r) + N(this.s) } } function U(...n) { if (!n.every((n => n instanceof Uint8Array))) throw new Error("Uint8Array list expected"); if (1 === n.length) return n[0]; const t = n.reduce(((n, t) => n + t.length), 0), e = new Uint8Array(t); for (let t = 0, r = 0; t < n.length; t++) { const i = n[t]; e.set(i, r), r += i.length } return e } const H = Array.from({ length: 256 }, ((n, t) => M t.toString(16).padStart(2, "0"))); function I(n) { if (!(n instanceof Uint8Array)) throw new Error("Expected Uint8Array"); let t = ""; for (let e = 0; e < n.length; e++)t += H[n[e]]; return t } const z = BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"); function N(n) { if ("bigint" != typeof n) throw new Error("Expected bigint"); if (!(e <= n && n < z)) throw new Error("Expected number 0 <= n < 2^256"); return n.toString(16).padStart(64, "0") } function R(n) { const t = P(N(n)); if (32 M !== t.length) throw new Error("Error: expected 32 bytes"); return t } function _(n) { const t = n.toString(16); return 1 & t.length ? `0${t}` : t } function k(n) { if ("string" != typeof n) throw new TypeError("hexToNumber: expected string, got " + typeof n); return BigInt(`0x${n}`) } function P(n) { if ("string" != typeof n) throw new TypeError("hexToBytes: expected string, got " + typeof n); if (n.length % 2) throw new Error("hexToBytes: received invalid unpadded hex" + n.length); const t = new Uint8Array(n.lengtM h / 2); for (let e = 0; e < t.length; e++) { const r = 2 * e, i = n.slice(r, r + 2), s = Number.parseInt(i, 16); if (Number.isNaN(s) || s < 0) throw new Error("Invalid byte sequence"); t[e] = s } return t } function C(n) { return k(I(n)) } function T(n) { return n instanceof Uint8Array ? Uint8Array.from(n) : P(n) } function O(n) { if ("number" == typeof n && Number.isSafeInteger(n) && n > 0) return BigInt(n); if ("bigint" == typeof n && X(n)) return n; throw new TypeError("Expected valid private scalar: 0 < scalar M < curve.n") } function $(n, t = a.P) { const r = n % t; return r >= e ? r : t + r } function K(n, t) { const { P: r } = a; let i = n; for (; t-- > e;)i *= i, i %= r; return i } function V(n, t = a.P) { if (n === e || t <= e) throw new Error(`invert: expected positive integers, got n=${n} mod=${t}`); let i = $(n, t), s = t, o = e, c = r; for (; i !== e;) { const n = s % i, t = o - c * (s / i); s = i, i = n, o = c, c = t } if (s !== r) throw new Error("invert: does not exist"); return $(o, t) } function q(n, t = !1) M { const e = function (n) { const t = 8 * n.length - 8 * h, e = C(n); return t > 0 ? e >> BigInt(t) : e }(n); if (t) return e; const { n: r } = a; return e >= r ? e - r : e } let D, Z; class j { constructor(n, t) { if (this.hashLen = n, this.qByteLen = t, "number" != typeof n || n < 2) throw new Error("hashLen must be a number"); if ("number" != typeof t || t < 2) throw new Error("qByteLen must be a number"); this.v = new Uint8Array(n).fill(1), this.k = new Uint8Array(n).fill(0), this.counter = 0 } hmac(...n) { retuM rn pn.hmacSha256(this.k, ...n) } hmacSync(...n) { return Z(this.k, ...n) } checkSync() { if ("function" != typeof Z) throw new m("hmacSha256Sync needs to be set") } incr() { if (this.counter >= 1e3) throw new Error("Tried 1,000 k values for sign(), all were invalid"); this.counter += 1 } async reseed(n = new Uint8Array) { this.k = await this.hmac(this.v, Uint8Array.from([0]), n), this.v = await this.hmac(this.v), 0 !== n.length && (this.k = await this.hmac(this.v, Uint8Array.from([1]), n), this.v = await this.hmac(M this.v)) } reseedSync(n = new Uint8Array) { this.checkSync(), this.k = this.hmacSync(this.v, Uint8Array.from([0]), n), this.v = this.hmacSync(this.v), 0 !== n.length && (this.k = this.hmacSync(this.v, Uint8Array.from([1]), n), this.v = this.hmacSync(this.v)) } async generate() { this.incr(); let n = 0; const t = []; for (; n < this.qByteLen;) { this.v = await this.hmac(this.v); const e = this.v.slice(); t.push(e), n += this.v.length } return U(...t) } generateSync() { this.checkSync(), this.incr(); let n = 0; constM t = []; for (; n < this.qByteLen;) { this.v = this.hmacSync(this.v); const e = this.v.slice(); t.push(e), n += this.v.length } return U(...t) } } function X(n) { return e < n && n < a.n } function Y(n) { return e < n && n < a.P } function W(n, t, i, s = !0) { const { n: o } = a, c = q(n, !0); if (!X(c)) return; const u = V(c, o), f = E.BASE.multiply(c), h = $(f.x, o); if (h === e) return; const l = $(u * $(t + i * h, o), o); if (l === e) return; let y = new B(h, l), d = (f.x === y.r ? 0 : 2) | Number(f.y & r); retM urn s && y.hasHighS() && (y = y.normalizeS(), d ^= 1), { sig: y, recovery: d } } function F(n) { let t; if ("bigint" == typeof n) t = n; else if ("number" == typeof n && Number.isSafeInteger(n) && n > 0) t = BigInt(n); else if ("string" == typeof n) { if (n.length !== 2 * h) throw new Error("Expected 32 bytes of private key"); t = k(n) } else { if (!(n instanceof Uint8Array)) throw new TypeError("Expected valid private key"); if (n.length !== h) throw new Error("Expected 32 bytes of private key"); t = C(n) } if (!XM (t)) throw new Error("Expected private key: 0 < key < n"); return t } function M(n) { return n instanceof E ? (n.assertValidity(), n) : E.fromHex(n) } function J(n) { if (n instanceof B) return n.assertValidity(), n; try { return B.fromDER(n) } catch (t) { return B.fromCompact(n) } } function L(n) { const t = n instanceof Uint8Array, e = "string" == typeof n, r = (t || e) && n.length; return t ? r === y || r === d : e ? r === 2 * y || r === 2 * d : n instanceof E } function G(n, t, e = !1) { if (L(n)) throw new TypM eError("getSharedSecret: first arg must be private key"); if (!L(t)) throw new TypeError("getSharedSecret: second arg must be public key"); const r = M(t); return r.assertValidity(), r.multiply(F(n)).toRawBytes(e) } function Q(n) { return C(n.length > f ? n.slice(0, f) : n) } function nn(n) { const t = Q(n), r = $(t, a.n); return tn(r < e ? t : r) } function tn(n) { return R(n) } function en(n, t, e) { if (null == n) throw new Error(`sign: expected valid message hash, not "${n}"`); const r = T(n), i = F(t), s = [tnM (i), nn(r)]; if (null != e) { !0 === e && (e = pn.randomBytes(f)); const n = T(e); if (n.length !== f) throw new Error(`sign: Expected ${f} bytes of extra data`); s.push(n) } return { seed: U(...s), m: Q(r), d: i } } function rn(n, t) { const { sig: e, recovery: r } = n, { der: i, recovered: s } = Object.assign({ canonical: !0, der: !0 }, t), o = i ? e.toDERRawBytes() : e.toCompactRawBytes(); return s ? [o, r] : o } async function sn(n, t, e = {}) { const { seed: r, m: i, d: s } = en(n, t, e.extraEntropy), o = new M j(l, h); let a; for (await o.reseed(r); !(a = W(await o.generate(), i, s, e.canonical));)await o.reseed(); return rn(a, e) } const on = { strict: !0 }; function an(n, t, e, r = on) { let i; try { i = J(n), t = T(t) } catch (n) { return !1 } const { r: s, s: o } = i; if (r.strict && i.hasHighS()) return !1; const c = q(t); let u; try { u = M(e) } catch (n) { return !1 } const { n: f } = a, h = V(o, f), l = $(c * h, f), y = $(s * h, f), d = E.BASE.multiplyAndAddUnsafe(u, l, y); if (!d) return !1; return $(d.x, f) ===M s } function cn(n) { return $(C(n), a.n) } class un { constructor(n, t) { this.r = n, this.s = t, this.assertValidity() } static fromHex(n) { const t = T(n); if (64 !== t.length) throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${t.length}`); const e = C(t.subarray(0, 32)), r = C(t.subarray(32, 64)); return new un(e, r) } assertValidity() { const { r: n, s: t } = this; if (!Y(n) || !X(t)) throw new Error("Invalid signature") } toHex() { return N(this.r) + N(this.s) } toRawBytes() { return P(thM is.toHex()) } } class fn { constructor(n, t, e = pn.randomBytes()) { if (null == n) throw new TypeError(`sign: Expected valid message, not "${n}"`); this.m = T(n); const { x: r, scalar: i } = this.getScalar(F(t)); if (this.px = r, this.d = i, this.rand = T(e), 32 !== this.rand.length) throw new TypeError("sign: Expected 32 bytes of aux randomness") } getScalar(n) { const t = E.fromPrivateKey(n), e = t.hasEvenY() ? n : a.n - n; return { point: t, scalar: e, x: t.toRawX() } } initNonce(n, t) { return R(n ^ C(t)) } fiM nalizeNonce(n) { const t = $(C(n), a.n); if (t === e) throw new Error("sign: Creation of signature failed. k is zero"); const { point: r, x: i, scalar: s } = this.getScalar(t); return { R: r, rx: i, k: s } } finalizeSig(n, t, e, r) { return new un(n.x, $(t + e * r, a.n)).toRawBytes() } error() { throw new Error("sign: Invalid signature produced") } async calc() { const { m: n, d: t, px: e, rand: r } = this, i = pn.taggedHash, s = this.initNonce(t, await i(wn.aux, r)), { R: o, rx: a, k: c } = this.finalizeNonce(awaiM t i(wn.nonce, s, e, n)), u = cn(await i(wn.challenge, a, e, n)), f = this.finalizeSig(o, c, u, t); return await yn(f, n, e) || this.error(), f } calcSync() { const { m: n, d: t, px: e, rand: r } = this, i = pn.taggedHashSync, s = this.initNonce(t, i(wn.aux, r)), { R: o, rx: a, k: c } = this.finalizeNonce(i(wn.nonce, s, e, n)), u = cn(i(wn.challenge, a, e, n)), f = this.finalizeSig(o, c, u, t); return dn(f, n, e) || this.error(), f } } function hn(n, t, e) { const r = n instanceof un, i = r ? n : un.fromHex(n); retuM rn r && i.assertValidity(), { ...i, m: T(t), P: M(e) } } function ln(n, t, e, r) { const i = E.BASE.multiplyAndAddUnsafe(t, F(e), $(-r, a.n)); return !(!i || !i.hasEvenY() || i.x !== n) } async function yn(n, t, e) { try { const { r: r, s: i, m: s, P: o } = hn(n, t, e), a = cn(await pn.taggedHash(wn.challenge, R(r), o.toRawX(), s)); return ln(r, o, i, a) } catch (n) { return !1 } } function dn(n, t, e) { try { const { r: r, s: i, m: s, P: o } = hn(n, t, e), a = cn(pn.taggedHashSync(wn.challenge, R(r), o.toRawX(), sM )); return ln(r, o, i, a) } catch (n) { if (n instanceof m) throw n; return !1 } } const gn = { Signature: un, getPublicKey: function (n) { return E.fromPrivateKey(n).toRawX() }, sign: async function (n, t, e) { return new fn(n, t, e).calc() }, verify: yn, signSync: function (n, t, e) { return new fn(n, t, e).calcSync() }, verifySync: dn }; E.BASE._setWindowSize(8); const wn = { challenge: "BIP0340/challenge", aux: "BIP0340/aux", nonce: "BIP0340/nonce" }, mn = {}, pn = { bytesToHex: I, hexToBytes: P, concatBytes: UM , mod: $, invert: V, isValidPrivateKey(n) { try { return F(n), !0 } catch (n) { return !1 } }, _bigintTo32Bytes: R, _normalizePrivateKey: F, hashToPrivateKey: n => { n = T(n); const t = h + 8; if (n.length < t || n.length > 1024) throw new Error("Expected valid bytes of private key as per FIPS 186"); return R($(C(n), a.n - r) + r) }, randomBytes: (n = 32) => t.getRandomValues(new Uint8Array(n)), randomPrivateKey: () => pn.hashToPrivateKey(pn.randomBytes(h + 8)), precompute(n = 8, t = E.BASE) { const e = t === E.BASM E ? t : new E(t.x, t.y); return e._setWindowSize(n), e.multiply(s), e }, sha256: async (...n) => { const e = await t.subtle.digest("SHA-256", U(...n)); return new Uint8Array(e) }, hmacSha256: async (n, ...e) => { const r = await t.subtle.importKey("raw", n, { name: "HMAC", hash: { name: "SHA-256" } }, !1, ["sign"]), i = U(...e), s = await t.subtle.sign("HMAC", r, i); return new Uint8Array(s) }, sha256Sync: void 0, hmacSha256Sync: void 0, taggedHash: async (n, ...t) => { let e = mn[n]; if (void 0 === e) { const t = M await pn.sha256(Uint8Array.from(n, (n => n.charCodeAt(0)))); e = U(t, t), mn[n] = e } return pn.sha256(e, ...t) }, taggedHashSync: (n, ...t) => { if ("function" != typeof D) throw new m("sha256Sync is undefined, you need to set it"); let e = mn[n]; if (void 0 === e) { const t = D(Uint8Array.from(n, (n => n.charCodeAt(0)))); e = U(t, t), mn[n] = e } return D(e, ...t) }, _JacobianPoint: b }; Object.defineProperties(pn, { sha256Sync: { configurable: !1, get: () => D, set(n) { D || (D = n) } }, hmacSha256Sync: { configM urable: !1, get: () => Z, set(n) { Z || (Z = n) } } }); var bn = Object.freeze({ __proto__: null, CURVE: a, Point: E, Signature: B, getPublicKey: function (n, t = !1) { return E.fromPrivateKey(n).toRawBytes(t) }, getSharedSecret: G, recoverPublicKey: function (n, t, e, r = !1) { return E.fromSignature(n, t, e).toRawBytes(r) }, schnorr: gn, sign: sn, signSync: function (n, t, e = {}) { const { seed: r, m: i, d: s } = en(n, t, e.extraEntropy), o = new j(l, h); let a; for (o.reseedSync(r); !(a = W(o.generateSync(), i,M s, e.canonical));)o.reseedSync(); return rn(a, e) }, utils: pn, verify: an }); const xn = new TextEncoder, An = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function En(n) { for (const t of An) if (t.name === n) return t.charset; throw TypeError("Charset does not exist: " +M n) } const vn = { encode: function (n, t, e = !1) { "string" == typeof n && (n = xn.encode(n)); const r = En(t), i = r.length, s = []; let o, a, c, u = "", f = 0; for (o = 0; o < n.length; o++)for (f = 0, a = n[o], u += a > 0 || (u.length ^ o) > 0 ? "" : "1"; f in s || a > 0;)c = s[f], c = c > 0 ? 256 * c + a : a, a = c / i | 0, s[f] = c % i, f++; for (; f-- > 0;)u += r[s[f]]; return e && u.length % 4 > 0 ? u + "=".repeat(4 - u.length % 4) : u }, decode: function (n, t) { const e = En(t), r = e.length, i = [], s =M []; n = n.replace("=", ""); let o, a, c, u = 0; for (o = 0; o < n.length; o++) { if (u = 0, a = e.indexOf(n[o]), a < 0) throw new Error(`Character range out of bounds: ${a}`); for (a > 0 || (s.length ^ o) > 0 || s.push(0); u in i || a > 0;)c = i[u], c = c > 0 ? c * r + a : a, a = c >> 8, i[u] = c % 256, u++ } for (; u-- > 0;)s.push(i[u]); return new Uint8Array(s) } }, Sn = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", Bn = [996825010, 642813549, 513874426, 1027748829, 705979059], Un = { BECH32: "bech32", BECH32M: "bech32m" M }; function Hn(n) { switch (n) { case Un.BECH32: return 1; case Un.BECH32M: return 734539939; default: throw new Error(`Unrecognized encoding: ${n}`) } } function In(n) { let t = 1; for (let e = 0; e < n.length; ++e) { const r = t >> 25; t = (33554431 & t) << 5 ^ n[e]; for (let n = 0; n < 5; ++n)(r >> n & 1) > 0 && (t ^= Bn[n]) } return t } function zn(n) { const t = []; let e; for (e = 0; e < n.length; ++e)t.push(n.charCodeAt(e) >> 5); for (t.push(0), e = 0; e < n.length; ++e)t.push(31 & n.charCodeAt(e)); return tM } function Nn(n, t, e, r = !0) { const i = []; let s = 0, o = 0; const a = (1 << e) - 1, c = (1 << t + e - 1) - 1; for (const r of n) { if (r < 0 || r >> t > 0) return []; for (s = (s << t | r) & c, o += t; o >= e;)o -= e, i.push(s >> o & a) } if (r) o > 0 && i.push(s << e - o & a); else if (o >= t || (s << e - o & a) > 0) return []; return i } function Rn(n, t, e) { const r = t.concat(function (n, t, e) { const r = In(zn(n).concat(t).concat([0, 0, 0, 0, 0, 0])) ^ Hn(e), i = []; for (let n = 0; n < 6; ++n)i.push(rM >> 5 * (5 - n) & 31); return i }(n, t, e)); let i = n + "1"; for (let n = 0; n < r.length; ++n)i += Sn.charAt(r[n]); return i } function _n(n, t) { const e = t > 0 ? "bech32m" : "bech32"; if (!function (n) { let t, e, r = !1, i = !1; for (t = 0; t < n.length; ++t) { if (e = n.charCodeAt(t), e < 33 || e > 126) return !1; e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) } return !(r && i) }(n)) return { hrp: null, data: [255] }; if (!function (n) { const t = n.lastIndexOf("1"); return !(t < 1 || t + 7M > n.length || n.length > 90) }(n = n.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = n.lastIndexOf("1"), s = n.substring(0, i); for (let t = i + 1; t < n.length; ++t) { const e = Sn.indexOf(n.charAt(t)); if (-1 === e) return { hrp: null, data: [255] }; r.push(e) } return function (n, t, e) { return In(zn(n).concat(t)) === Hn(e) }(s, r, e) ? { hrp: s, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } } function kn(n, t = 0) { const e = n.split("1", 1)[0], { hrp: r, data: i } = _n(n,M t), s = Nn(i.slice(1), 5, 8, !1), o = s.length; switch (!0) { case e !== r: throw new Error("Returned hrp string is invalid."); case null === s || o < 2 || o > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("Returned version bit is out of range."); case 0 === i[0] && 20 !== o && 32 !== o: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== t: case 0 !== i[0] && 1 !== t: throw new Error("Decoded version bit does not match."); M default: return Uint8Array.from(s) } } const Pn = { encode: function (n, t = "bch", e = 0) { const r = Rn(t, [e, ...Nn([...n], 8, 5)], e > 0 ? "bech32m" : "bech32"); return kn(r, e), r }, decode: kn }, Cn = new TextEncoder, Tn = new TextDecoder; function On(n) { return Cn.encode(n) } function $n(n) { const t = []; let e, r = 0; if (n.length % 2 > 0) throw new Error(`Invalid hex string length: ${n.length}`); for (e = 0; e < n.length; e += 2)t[r] = parseInt(n.slice(e, e + 2), 16), r += 1; return Uint8Array.from(t) } M function Kn(n) { const t = []; for (; n > 0;) { const e = 255 & n; t.push(e), n = (n - e) / 256 } return Uint8Array.from(t) } function Vn(n) { const t = []; for (; n > 0n;) { const e = 0xffn & n; t.push(Number(e)), n = (n - e) / 256n } return Uint8Array.from(t) } function qn(n) { return Tn.decode(n) } function Dn(n) { let t, e = 0; for (t = n.length - 1; t >= 0; t--)e = 256 * e + n[t]; return Number(e) } function Zn(n) { let t, e = 0n; for (t = n.length - 1; t >= 0; t--)e = 256n * e + BigInt(n[t]); return BigInt(e)M } async function jn(n) { return crypto.subtle.digest("SHA-256", n).then((n => new Uint8Array(n))) } async function Xn(n) { return jn(await jn(n)) } const { crypto: Yn } = globalThis; class Wn extends Uint8Array { static { this.num = (n, t, e = "le") => new Wn(Kn(n), t, e) } static { this.big = (n, t, e = "le") => new Wn(Vn(n), t, e) } static async b58check(n) { const t = vn.decode(n, "base58"); return new Wn(await async function (n) { const t = n.slice(0, -4), e = n.slice(-4); if ((await Xn(t)).slice(0, 4).toStrinM g() !== e.toString()) throw new Error("Invalid checksum!"); return t }(t)) } static { this.buff = (n, t) => new Wn(function (n) { if (n instanceof ArrayBuffer) return new Uint8Array(n); if (n instanceof Uint8Array) return n; const t = typeof n; switch (t) { case "bigint": return Vn(n); case "boolean": return Uint8Array.of(n); case "number": return Kn(n); case "string": return null !== n.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? $n(n) : Cn.encode(n); default: throw TypeError("Unsupported format:" + t) } }(n), t) } staticM { this.raw = (n, t) => new Wn(n, t) } static { this.str = (n, t) => new Wn(On(n), t) } static { this.hex = (n, t) => new Wn($n(n), t) } static { this.json = n => new Wn(On(JSON.stringify(n))) } static { this.base64 = n => new Wn(vn.decode(n, "base64")) } static { this.b64url = n => new Wn(vn.decode(n, "base64url")) } static { this.bech32 = (n, t) => new Wn(Pn.decode(n, t)) } constructor(n, t = null, e = "be") { if (null !== t) { const e = new Uint8Array(t).fill(0); e.set(new Uint8Array(n)), n = e.buffer } return sM uper(n = "le" === e ? new Uint8Array(n).reverse() : n), this } get num() { return this.toNum() } get big() { return this.toBig() } get arr() { return this.toArr() } get str() { return this.toStr() } get hex() { return this.toHex() } get raw() { return new Uint8Array(this) } get hash() { return this.toHash() } get id() { return this.toHash().then((n => new Wn(n).hex)) } toNum(n = "le") { return Dn("le" === n ? this.reverse() : this) } toBig(n = "le") { return Zn("le" === n ? this.reverse() : this) } async toHash() {M return Yn.subtle.digest("SHA-256", this.raw).then((n => new Uint8Array(n))) } async tob58check() { return vn.encode(await async function (n) { const t = await Xn(n); return Uint8Array.of(...n, ...t.slice(0, 4)) }(this), "base58") } toArr() { return Array.from(this) } toStr() { return qn(this) } toHex() { return function (n) { const t = []; let e; for (e = 0; e < n.length; e++)t.push(n[e].toString(16).padStart(2, "0")); return t.join("") }(this) } toJson() { return JSON.parse(qn(this)) } toBytes() { return new UintM 8Array(this) } toB64url() { return vn.encode(this, "base64url") } toBase64(n) { return vn.encode(this, "base64", n) } toBech32(n, t) { return Pn.encode(this, n, t) } prepend(n) { return Wn.of(...n, ...this) } append(n) { return Wn.of(...this, ...n) } slice(n, t) { return new Wn(new Uint8Array(this).slice(n, t)) } reverse() { return new Wn(new Uint8Array(this).reverse()) } write(n, t) { this.set(n, t) } prependVarint(n = this.length) { return Wn.of(...Wn.readVarint(n), ...this) } static from(n) { return new Wn(Uint8M Array.from(n)) } static of(...n) { return new Wn(Uint8Array.of(...n)) } static join(n) { let t, e = 0; const r = n.reduce(((n, t) => n + t.length), 0), i = new Uint8Array(r); for (const r of n) for (t = 0; t < r.length; e++, t++)i[e] = r[t]; return new Wn(i, r) } static readVarint(n) { if (n < 253) return Wn.num(n, 1); if (n < 65536) return Wn.of(253, ...Wn.num(n, 2)); if (n < 4294967296) return Wn.of(254, ...Wn.num(n, 4)); if (n < 0x10000000000000000) return Wn.of(255, ...Wn.num(n, 8)); throw new Error(`Value is tM oo large: ${n}`) } static random(n = 32) { return new Wn(Yn.getRandomValues(new Uint8Array(n))) } static { this.encode = On } static { this.decode = qn } static normalize(n, t) { if (n instanceof Uint8Array) return n; if ("string" == typeof n) return Wn.hex(n, t).toBytes(); if ("number" == typeof n) return Wn.num(n, t).toBytes(); if ("bigint" == typeof n) return Wn.big(n, t).toBytes(); throw TypeError("Unrecognized format: " + typeof n) } static serialize(n) { if ("string" == typeof n) return Wn.str(n).toBytes(); iM f ("object" == typeof n) { if (n instanceof Uint8Array) return n; try { return Wn.json(n).toBytes() } catch { throw TypeError("Object is not serializable.") } } throw TypeError("Unrecognized format: " + typeof n) } static revitalize(n) { if (n instanceof Uint8Array && (n = qn(n)), "string" == typeof n) try { return JSON.parse(n) } catch { return n } return n } } const Fn = globalThis.crypto; async function Mn(n, t) { return G(Wn.normalize(n), Wn.normalize(t), !0) } async function Jn(n) { return Fn.subtle.importKey(M "raw", Wn.normalize(n), { name: "AES-CBC" }, !0, ["encrypt", "decrypt"]) } const Ln = { ecdh: Mn, import: Jn, export: async function (n) { return Fn.subtle.exportKey("raw", n).then((n => new Uint8Array(n))) }, hmac: async function (n, t = "SHA-256") { const e = { name: "HMAC", hash: t }; return Fn.subtle.importKey("raw", Wn.normalize(n), e, !1, ["sign", "verify"]) }, shared: async function (n, t) { return Jn((await Mn(n, t)).slice(1, 33)) }, generate: async function () { return Jn(Wn.random(32)) }, normalize: asyncM function (n) { return n instanceof CryptoKey ? n : Ln.import(n) } }, Gn = globalThis.crypto; class Qn { static async fromSecret(n) { const t = await Ln.normalize(n); return new Qn(t) } static async fromShared(n, t) { const e = await Ln.shared(n, t); return new Qn(e) } static async encrypt(n, t, e) { const r = Wn.normalize(t), i = await Ln.normalize(n), s = void 0 !== e ? Wn.normalize(e) : Wn.random(16); return Gn.subtle.encrypt({ name: "AES-CBC", iv: s }, i, r).then((n => Uint8Array.of(...s, ...new Uint8Array(n)))M ) } static async decrypt(n, t, e) { const r = Wn.normalize(t), i = await Ln.normalize(n), s = void 0 !== e ? r : r.slice(16), o = void 0 !== e ? Wn.normalize(e) : r.slice(0, 16); return Gn.subtle.decrypt({ name: "AES-CBC", iv: o }, i, s).then((n => new Uint8Array(n))) } constructor(n) { this.key = n } get secretKey() { return Ln.export(this.key) } get secretHex() { return this.secretKey.then((n => Wn.buff(n).toHex())) } async encrypt(n, t) { return Qn.encrypt(this.key, n, t) } async decrypt(n, t) { return Qn.decrypM t(this.key, n, t) } } class nt extends Uint8Array { static { this.N = a.n } static mod(n, t = nt.N) { return pn.mod(n, t) } static { this.isField = n => n instanceof nt } static normalize(n) { return n = et(n), n = nt.mod(n), n = pn._normalizePrivateKey(n), Wn.big(n, 32).raw } static validate(n) { return pn.isValidPrivateKey(n) } constructor(n) { super(n = nt.normalize(n)) } get buff() { return new Wn(this) } get raw() { return this } get num() { return this.buff.toBig() } get point() { return tt.fromNum(this.num) M } get hasOddY() { return this.point.hasOddY } get negated() { return this.hasOddY ? this.negate() : this } gt(n) { return new nt(n).num > this.num } lt(n) { return new nt(n).num < this.num } eq(n) { return new nt(n).num === this.num } ne(n) { return new nt(n).num !== this.num } add(n) { const t = new nt(n); return new nt(this.num + t.num) } sub(n) { const t = new nt(n); return new nt(this.num - t.num) } mul(n) { const t = new nt(n); return new nt(this.num * t.num) } pow(n, t = nt.N - 1n) { const e = new nt(n), r = M nt.mod(e.num, t); return new nt(this.num ** r) } div(n) { const t = new nt(n), e = this.pow(t.num, nt.N - 2n); return new nt(this.num * e.num) } negate() { return new nt(nt.N - this.num) } } class tt { static { this.N = a.n } static validate(n) { try { n = et(n); const t = Wn.big(n).toHex(); return E.fromHex(t).assertValidity(), !0 } catch { return !1 } } static fromNum(n) { n = et(n); const t = pn.mod(n, tt.N), e = E.BASE.multiply(t); return new tt(e.x, e.y) } static fromX(n) { n = et(n); const t = Wn.big(n).toHexM (); return tt.from(E.fromHex(t)) } static from(n) { return new tt(n.x, n.y) } constructor(n, t) { this.__p = new E(n, t), this.__x = this.__p.x, this.__y = this.__p.y, this.__p.assertValidity() } get p() { return this.__p } get buff() { return new Wn(this.rawX.slice(1)) } get hex() { return this.buff.hex } get hasOddY() { return !this.__p.hasEvenY() } get rawX() { const n = this.__p.hasEvenY() ? 2 : 3, t = Wn.big(this.__x); return Uint8Array.of(n, ...t) } get rawY() { return Wn.big(this.__y) } get x() { return thisM .__x } get y() { return this.__y } eq(n) { return n instanceof tt ? this.p.equals(new E(n.x, n.y)) : n instanceof Uint8Array ? this.x.toString() === n.toString() : "number" == typeof n ? BigInt(n) === this.x : n === this.x } add(n) { return n instanceof tt ? tt.from(this.p.add(n.p)) : tt.from(this.p.add(tt.fromNum(n).p)) } sub(n) { return n instanceof tt ? tt.from(this.p.subtract(n.p)) : tt.from(this.p.subtract(tt.fromNum(n).p)) } mul(n) { return n instanceof tt ? tt.from(this.p.multiply(n.x)) : tt.from(this.p.multM iply(et(n))) } negate() { return tt.from(this.__p.negate()) } } function et(n) { if (n instanceof Uint8Array) return Wn.raw(n).big; if ("string" == typeof n) return Wn.hex(n).big; if ("number" == typeof n) return BigInt(n); if ("bigint" == typeof n) return n; throw TypeError("Invalid input type:" + typeof n) } async function rt(n, t, e = "schnorr") { const r = Wn.normalize(n), i = Wn.normalize(t); return "schnorr" === e ? gn.sign(r, i) : sn(r, i) } async function it(n, t, e, r = "schnorr") { const i = Wn.normalize(M n), s = Wn.normalize(t), o = Wn.normalize(e); return "schnorr" === r ? gn.verify(o, i, (a = s).length > 32 ? a.slice(1) : a) : an(o, i, s); var a } class st { static generate() { return new st(Wn.random(32)) } constructor(n) { this._buffer = Wn.normalize(n, 32) } get field() { return new nt(this._buffer) } get point() { return this.field.point } get buff() { return new Wn(this._buffer) } get raw() { return new Uint8Array(this._buffer) } get hex() { return this.buff.hex } get pub() { return new ot(this.point.rawX) }M async sign(n, t) { return rt(Wn.normalize(n), this.raw, t) } async verify(n, t, e) { return it(n, this.pub.raw, t, e) } } class ot { static generate() { return new st(Wn.random(32)).pub } constructor(n) { this._buffer = Wn.normalize(n) } get raw() { return new Uint8Array(this._buffer) } get rawX() { return this.raw.length > 32 ? this.raw.slice(1, 33) : this.raw } get buff() { return new Wn(this.raw) } get hex() { return this.buff.hex } async verify(n, t, e) { return it(n, this.raw, t, e) } } function at(n) { let tM = 0n; for (let e = n.length - 1; e >= 0; e--)t = 256n * t + BigInt(n[e]); return BigInt(t) } function ct(n, t = 0) { const e = []; for (; n > 0;) { const t = 0xffn & n; e.push(t), n = (n - t) / 256n } let r = Uint8Array.from(e.map((n => Number(n)))); if (0 !== t) { const n = new Uint8Array(t); n.set(r), r = n } return r } const ut = [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n, 10n, 11n, 12n, 13n, 14n, 15n, 7n, 4n, 13n, 1n, 10n, 6n, 15n, 3n, 12n, 0n, 9n, 5n, 2n, 14n, 11n, 8n, 3n, 10n, 14n, 4n, 9n, 15n, 8n, 1n, 2n, 7n, M 0n, 6n, 13n, 11n, 5n, 12n, 1n, 9n, 11n, 10n, 0n, 8n, 12n, 4n, 13n, 3n, 7n, 15n, 14n, 5n, 6n, 2n, 4n, 0n, 5n, 9n, 7n, 12n, 2n, 10n, 14n, 1n, 3n, 8n, 11n, 6n, 15n, 13n], ft = [5n, 14n, 7n, 0n, 9n, 2n, 11n, 4n, 13n, 6n, 15n, 8n, 1n, 10n, 3n, 12n, 6n, 11n, 3n, 7n, 0n, 13n, 5n, 10n, 14n, 15n, 8n, 12n, 4n, 9n, 1n, 2n, 15n, 5n, 1n, 3n, 7n, 14n, 6n, 9n, 11n, 8n, 12n, 2n, 10n, 0n, 4n, 13n, 8n, 6n, 4n, 1n, 3n, 11n, 15n, 0n, 5n, 12n, 2n, 13n, 9n, 7n, 10n, 14n, 12n, 15n, 10n, 4n, 1n, 5n, 8n, 7n, 6n, 2n, 13n, 14n, 0n, 3n, 9n, 1M 1n], ht = [11n, 14n, 15n, 12n, 5n, 8n, 7n, 9n, 11n, 13n, 14n, 15n, 6n, 7n, 9n, 8n, 7n, 6n, 8n, 13n, 11n, 9n, 7n, 15n, 7n, 12n, 15n, 9n, 11n, 7n, 13n, 12n, 11n, 13n, 6n, 7n, 14n, 9n, 13n, 15n, 14n, 8n, 13n, 6n, 5n, 12n, 7n, 5n, 11n, 12n, 14n, 15n, 14n, 15n, 9n, 8n, 9n, 14n, 5n, 6n, 8n, 6n, 5n, 12n, 9n, 15n, 5n, 11n, 6n, 8n, 13n, 12n, 5n, 12n, 13n, 14n, 11n, 8n, 5n, 6n], lt = [8n, 9n, 9n, 11n, 13n, 15n, 15n, 5n, 7n, 7n, 8n, 11n, 14n, 14n, 12n, 6n, 9n, 13n, 15n, 7n, 12n, 8n, 9n, 11n, 7n, 7n, 12n, 7n, 6n, 15n, 13n, 11nM , 9n, 7n, 15n, 11n, 8n, 6n, 6n, 14n, 12n, 13n, 5n, 14n, 13n, 13n, 7n, 5n, 15n, 5n, 8n, 11n, 14n, 14n, 6n, 14n, 6n, 9n, 12n, 9n, 12n, 5n, 15n, 8n, 8n, 5n, 12n, 9n, 12n, 5n, 14n, 6n, 8n, 13n, 6n, 5n, 15n, 13n, 11n, 11n], yt = [0n, 0x5a827999n, 0x6ed9eba1n, 0x8f1bbcdcn, 0xa953fd4en], dt = [0x50a28be6n, 0x5c4dd124n, 0x6d703ef3n, 0x7a6d76e9n, 0n]; function gt(n, t, e, r) { switch (!0) { case 0n === r: return n ^ t ^ e; case 1n === r: return n & t | ~n & e; case 2n === r: return (n | ~t) ^ e; case 3n === r: return n & e M | t & ~e; case 4n === r: return n ^ (t | ~e); default: throw new TypeError("Unknown I value: " + String(r)) } } function wt(n, t) { return 0xffffffffn & (n << t | (0xffffffffn & n) >> 32n - t) } function mt(n, t, e, r, i, s) { const o = []; let a, c, u, f, h, l, y, d = n, g = t, w = e, m = r, p = i, b = n, x = t, A = e, E = r, v = i; for (let n = 0; n < 16; n++) { const t = at(s.slice(4 * n, 4 * (n + 1))); o.push(t) } for (let n = 0; n < 80; n++)a = BigInt(n) >> 4n, f = o[Number(ut[n])], h = yt[Number(a)], l = o[NuM mber(ft[n])], y = dt[Number(a)], d = wt(d + gt(g, w, m, a) + f + h, ht[n]) + p, c = p, p = m, m = wt(w, 10n), w = g, g = d, d = c, b = wt(b + gt(x, A, E, 4n - a) + l + y, lt[n]) + v, u = v, v = E, E = wt(A, 10n), A = x, x = b, b = u; return [t + w + E, e + m + v, r + p + b, i + d + x, n + g + A] } const pt = globalThis.crypto; async function bt(n, t = "SHA-256", e = 1, r = (n => n)) { let i, s = n instanceof ArrayBuffer ? n : Wn.normalize(n).buffer; for (i = 0; i < e; i++)s = await pt.subtle.digest(t, s), r(s); retM urn new Uint8Array(s) } async function xt(n) { return bt(n, "SHA-256") } function At(n) { return function (n) { let t = [0x67452301n, 0xefcdab89n, 0x98badcfen, 0x10325476n, 0xc3d2e1f0n]; for (let e = 0; e < n.length >> 6; e++)t = mt(...t, n.slice(64 * e, 64 * (e + 1))); const e = [128, ...new Array(119 - n.length & 63).fill(0)], r = Uint8Array.from([...n.slice(-64 & n.length), ...e, ...ct(BigInt(8 * n.length), 8)]); for (let n = 0; n < r.length >> 6; n++)t = mt(...t, r.slice(64 * n, 64 * (n + 1))); const i = []; foM r (let n = 0; n < t.length; n++) { const e = 0xffffffffn & t[n]; i.push(...ct(e, 4)) } return Uint8Array.from(i) }(n = Wn.normalize(n)) } const Et = { data: async function (n) { return xt(Wn.serialize(n)).then((n => new Uint8Array(n))) }, digest: bt, ripe160: At, sha256: xt, sha512: async function (n) { return bt(n, "SHA-512") }, hash160: async function (n) { return At(await xt(n)) }, hash256: async function (n) { return bt(n, "SHA-256", 2) }, hmac256: async function (n, t) { const e = await Ln.hmac(n, "SHA-256"); M return pt.subtle.sign("HMAC", e, Wn.normalize(t)).then((n => new Uint8Array(n))) }, hmac512: async function (n, t) { const e = await Ln.hmac(n, "SHA-512"); return pt.subtle.sign("HMAC", e, Wn.normalize(t)).then((n => new Uint8Array(n))) } }; return n.Cipher = Qn, n.Field = nt, n.Hash = Et, n.KeyPair = st, n.KeyUtil = Ln, n.Noble = bn, n.Point = tt, n.PubKey = ot, n.sign = rt, n.verify = it, n <script>!function (e) { if ("object" == typeof exports && "undefined" != typeof module) module.exporM ts = e(); else if ("function" == typeof define && define.amd) define([], e); else { ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).bech32 = e() } }(function () { return function () { return function e(r, t, n) { function o(i, c) { if (!t[i]) { if (!r[i]) { var u = "function" == typeof require && require; if (!c && u) return u(i, !0); if (f) return f(i, !0); var s = new Error("Cannot find module '" + i + "'"); throw s.code = "MODULE_NOT_FOUNM D", s } var l = t[i] = { exports: {} }; r[i][0].call(l.exports, function (e) { return o(r[i][1][e] || e) }, l, l.exports, e, r, t, n) } return t[i].exports } for (var f = "function" == typeof require && require, i = 0; i < n.length; i++)o(n[i]); return o } }()({ 1: [function (e, r, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.bech32m = t.bech32 = void 0; const n = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", o = {}; for (let e = 0; e < n.length; e++) { const r = n.charAt(e); o[r] = e } functioM n f(e) { const r = e >> 25; return (33554431 & e) << 5 ^ 996825010 & -(r >> 0 & 1) ^ 642813549 & -(r >> 1 & 1) ^ 513874426 & -(r >> 2 & 1) ^ 1027748829 & -(r >> 3 & 1) ^ 705979059 & -(r >> 4 & 1) } function i(e) { let r = 1; for (let t = 0; t < e.length; ++t) { const n = e.charCodeAt(t); if (n < 33 || n > 126) return "Invalid prefix (" + e + ")"; r = f(r) ^ n >> 5 } r = f(r); for (let t = 0; t < e.length; ++t) { const n = e.charCodeAt(t); r = f(r) ^ 31 & n } return r } function c(e, r, t, n) { let o = 0, f = 0; conM st i = (1 << t) - 1, c = []; for (let n = 0; n < e.length; ++n)for (o = o << r | e[n], f += r; f >= t;)f -= t, c.push(o >> f & i); if (n) f > 0 && c.push(o << t - f & i); else { if (f >= r) return "Excess padding"; if (o << t - f & i) return "Non-zero padding" } return c } function u(e) { return c(e, 8, 5, !0) } function s(e) { const r = c(e, 5, 8, !1); if (Array.isArray(r)) return r } function l(e) { const r = c(e, 5, 8, !1); if (Array.isArray(r)) return r; throw new Error(r) } function d(e) { let r; function t(e,M t) { if (t = t || 90, e.length < 8) return e + " too short"; if (e.length > t) return "Exceeds length limit"; const n = e.toLowerCase(), c = e.toUpperCase(); if (e !== n && e !== c) return "Mixed-case string " + e; const u = (e = n).lastIndexOf("1"); if (-1 === u) return "No separator character for " + e; if (0 === u) return "Missing prefix for " + e; const s = e.slice(0, u), l = e.slice(u + 1); if (l.length < 6) return "Data too short"; let d = i(s); if ("string" == typeof d) return d; const h = []; for (let e = M 0; e < l.length; ++e) { const r = l.charAt(e), t = o[r]; if (void 0 === t) return "Unknown character " + r; d = f(d) ^ t, e + 6 >= l.length || h.push(t) } return d !== r ? "Invalid checksum for " + e : { prefix: s, words: h } } return r = "bech32" === e ? 1 : 734539939, { decodeUnsafe: function (e, r) { const n = t(e, r); if ("object" == typeof n) return n }, decode: function (e, r) { const n = t(e, r); if ("object" == typeof n) return n; throw new Error(n) }, encode: function (e, t, o) { if (o = o || 90, e.length M + 7 + t.length > o) throw new TypeError("Exceeds length limit"); let c = i(e = e.toLowerCase()); if ("string" == typeof c) throw new Error(c); let u = e + "1"; for (let e = 0; e < t.length; ++e) { const r = t[e]; if (r >> 5 != 0) throw new Error("Non 5-bit word"); c = f(c) ^ r, u += n.charAt(r) } for (let e = 0; e < 6; ++e)c = f(c); c ^= r; for (let e = 0; e < 6; ++e) { const r = c >> 5 * (5 - e) & 31; u += n.charAt(r) } return u }, toWords: u, fromWordsUnsafe: s, fromWords: l } } t.bech32 = d("bech32"), t.bech32m M = d("bech32m") }, {}] }, {}, [1])(1) });</script> <script>var root, definition; root = "undefined" != typeof window ? window : this, definition = function () { for (var $ = [null, [[10, 7, 17, 13], [1, 1, 1, 1], []], [[16, 10, 28, 22], [1, 1, 1, 1], [4, 16]], [[26, 15, 22, 18], [1, 1, 2, 2], [4, 20]], [[18, 20, 16, 26], [2, 1, 4, 2], [4, 24]], [[24, 26, 22, 18], [2, 1, 4, 4], [4, 28]], [[16, 18, 28, 24], [4, 2, 4, 4], [4, 32]], [[18, 20, 26, 18], [4, 2, 5, 6], [4, 20, 36]], [[22, 24, 26, 22], [4, 2, 6, 6], [4, 2M 2, 40]], [[22, 30, 24, 20], [5, 2, 8, 8], [4, 24, 44]], [[26, 18, 28, 24], [5, 4, 8, 8], [4, 26, 48]], [[30, 20, 24, 28], [5, 4, 11, 8], [4, 28, 52]], [[22, 24, 28, 26], [8, 4, 11, 10], [4, 30, 56]], [[22, 26, 22, 24], [9, 4, 16, 12], [4, 32, 60]], [[24, 30, 24, 20], [9, 4, 16, 16], [4, 24, 44, 64]], [[24, 22, 24, 30], [10, 6, 18, 12], [4, 24, 46, 68]], [[28, 24, 30, 24], [10, 6, 16, 17], [4, 24, 48, 72]], [[28, 28, 28, 28], [11, 6, 19, 16], [4, 28, 52, 76]], [[26, 30, 28, 28], [13, 6, 21, 18], [4, 28, 54, 80]], [[M 26, 28, 26, 26], [14, 7, 25, 21], [4, 28, 56, 84]], [[26, 28, 28, 30], [16, 8, 25, 20], [4, 32, 60, 88]], [[26, 28, 30, 28], [17, 8, 25, 23], [4, 26, 48, 70, 92]], [[28, 28, 24, 30], [17, 9, 34, 23], [4, 24, 48, 72, 96]], [[28, 30, 30, 30], [18, 9, 30, 25], [4, 28, 52, 76, 100]], [[28, 30, 30, 30], [20, 10, 32, 27], [4, 26, 52, 78, 104]], [[28, 26, 30, 30], [21, 12, 35, 29], [4, 30, 56, 82, 108]], [[28, 28, 30, 28], [23, 12, 37, 34], [4, 28, 56, 84, 112]], [[28, 30, 30, 30], [25, 12, 40, 34], [4, 32, 60, 88, 116]],M [[28, 30, 30, 30], [26, 13, 42, 35], [4, 24, 48, 72, 96, 120]], [[28, 30, 30, 30], [28, 14, 45, 38], [4, 28, 52, 76, 100, 124]], [[28, 30, 30, 30], [29, 15, 48, 40], [4, 24, 50, 76, 102, 128]], [[28, 30, 30, 30], [31, 16, 51, 43], [4, 28, 54, 80, 106, 132]], [[28, 30, 30, 30], [33, 17, 54, 45], [4, 32, 58, 84, 110, 136]], [[28, 30, 30, 30], [35, 18, 57, 48], [4, 28, 56, 84, 112, 140]], [[28, 30, 30, 30], [37, 19, 60, 51], [4, 32, 60, 88, 116, 144]], [[28, 30, 30, 30], [38, 19, 63, 53], [4, 28, 52, 76, 100, 124, 14M 8]], [[28, 30, 30, 30], [40, 20, 66, 56], [4, 22, 48, 74, 100, 126, 152]], [[28, 30, 30, 30], [43, 21, 70, 59], [4, 26, 52, 78, 104, 130, 156]], [[28, 30, 30, 30], [45, 22, 74, 62], [4, 30, 56, 82, 108, 134, 160]], [[28, 30, 30, 30], [47, 24, 77, 65], [4, 24, 52, 80, 108, 136, 164]], [[28, 30, 30, 30], [49, 25, 81, 68], [4, 28, 56, 84, 112, 140, 168]]], r = /^\d*$/, e = /^[A-Za-z0-9 $%*+\-./:] * $ /, t = /^[A-Z0-9 $%*+\-./:] * $ /, _ = [], n = [-1], a = 0, o = 1; a < 255; ++a)_.push(o), n[o] = a, o = 2 * o ^ (o >= M 128 ? 285 : 0); for (var f = [[]], a = 0; a < 30; ++a) { for (var u = f[a], i = [], l = 0; l <= a; ++l) { var c = l < a ? _[u[l]] : 0, s = _[(a + (u[l - 1] || 0)) % 255]; i.push(n[c ^ s]) } f.push(i) } for (var h = {}, a = 0; a < 45; ++a)h["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(a)] = a; var v = [function ($, r) { return ($ + r) % 2 == 0 }, function ($, r) { return $ % 2 == 0 }, function ($, r) { return r % 3 == 0 }, function ($, r) { return ($ + r) % 3 == 0 }, function ($, r) { return (($ / 2 | 0) +M (r / 3 | 0)) % 2 == 0 }, function ($, r) { return $ * r % 2 + $ * r % 3 == 0 }, function ($, r) { return ($ * r % 2 + $ * r % 3) % 2 == 0 }, function ($, r) { return (($ + r) % 2 + $ * r % 3) % 2 == 0 }], x = function ($) { return $ > 6 }, g = function (r) { var e = $[r], t = 16 * r * r + 128 * r + 64; return x(r) && (t -= 36), e[2].length && (t -= 25 * e[2].length * e[2].length - 10 * e[2].length - 55), t }, d = function (r, e) { var t = -8 & g(r), _ = $[r]; return t - 8 * _[0][e] * _[1][e] }, p = function ($, r)M { switch (r) { case 1: return $ < 10 ? 10 : $ < 27 ? 12 : 14; case 2: return $ < 10 ? 9 : $ < 27 ? 11 : 13; case 4: return $ < 10 ? 8 : 16; case 8: return $ < 10 ? 8 : $ < 27 ? 10 : 12 } }, m = function ($, r, e) { var t = d($, e) - 4 - p($, r); switch (r) { case 1: return (t / 10 | 0) * 3 + (t % 10 < 4 ? 0 : t % 10 < 7 ? 1 : 2); case 2: return (t / 11 | 0) * 2 + (t % 11 < 6 ? 0 : 1); case 4: return t / 8 | 0; case 8: return t / 13 | 0 } }, w = function ($, t) { switch ($) { case 1: if (!t.match(r)) return null; rM eturn t; case 2: if (!t.match(e)) return null; return t.toUpperCase(); case 4: if ("string" != typeof t) return t; for (var _ = [], n = 0; n < t.length; ++n) { var a = t.charCodeAt(n); a < 128 ? _.push(a) : a < 2048 ? _.push(192 | a >> 6, 128 | 63 & a) : a < 65536 ? _.push(224 | a >> 12, 128 | a >> 6 & 63, 128 | 63 & a) : _.push(240 | a >> 18, 128 | a >> 12 & 63, 128 | a >> 6 & 63, 128 | 63 & a) } return _ } }, b = function ($, r, e, t) { var _ = [], n = 0, a = 8, o = e.length, f = function ($, r) { if (r >= a) { fM or (_.push(n | $ >> (r -= a)); r >= 8;)_.push($ >> (r -= 8) & 255); n = 0, a = 8 } r > 0 && (n |= ($ & (1 << r) - 1) << (a -= r)) }, u = p($, r); switch (f(r, 4), f(o, u), r) { case 1: for (var i = 2; i < o; i += 3)f(parseInt(e.substring(i - 2, i + 1), 10), 10); f(parseInt(e.substring(i - 2), 10), [0, 4, 7][o % 3]); break; case 2: for (var i = 1; i < o; i += 2)f(45 * h[e.charAt(i - 1)] + h[e.charAt(i)], 11); o % 2 == 1 && f(h[e.charAt(i - 1)], 6); break; case 4: for (var i = 0; i < o; ++i)f(e[i], 8) }for (f(0, 4), M a < 8 && _.push(n); _.length + 1 < t;)_.push(236, 17); return _.length < t && _.push(236), _ }, F = function ($, r) { for (var e = $.slice(0), t = $.length, a = r.length, o = 0; o < a; ++o)e.push(0); for (var o = 0; o < t;) { var f = n[e[o++]]; if (f >= 0) for (var u = 0; u < a; ++u)e[o + u] ^= _[(f + r[u]) % 255] } return e.slice(t) }, A = function ($, r, e) { for (var t = [], _ = $.length / r | 0, n = 0, a = r - $.length % r, o = 0; o < a; ++o)t.push(n), n += _; for (var o = a; o < r; ++o)t.push(n), n += _ + 1; tM .push(n); for (var f = [], o = 0; o < r; ++o)f.push(F($.slice(t[o], t[o + 1]), e)); for (var u = [], i = $.length / r | 0, o = 0; o < i; ++o)for (var l = 0; l < r; ++l)u.push($[t[l] + o]); for (var l = a; l < r; ++l)u.push($[t[l + 1] - 1]); for (var o = 0; o < e.length; ++o)for (var l = 0; l < r; ++l)u.push(f[l][o]); return u }, C = function ($, r, e, t) { for (var _ = $ << t, n = r - 1; n >= 0; --n)_ >> t + n & 1 && (_ ^= e << n); return $ << t | _ }, N = function (r) { for (var e, t = $[r], _ = 4 * (e = r) + 17, M n = [], a = [], o = 0; o < _; ++o)n.push([]), a.push([]); var f = function ($, r, e, t, _) { for (var o = 0; o < e; ++o)for (var f = 0; f < t; ++f)n[$ + o][r + f] = _[o] >> f & 1, a[$ + o][r + f] = 1 }; f(0, 0, 9, 9, [127, 65, 93, 93, 93, 65, 383, 0, 64]), f(_ - 8, 0, 8, 9, [256, 127, 65, 93, 93, 93, 65, 127]), f(0, _ - 8, 9, 8, [254, 130, 186, 186, 186, 130, 254, 0, 0]); for (var o = 9; o < _ - 8; ++o)n[6][o] = n[o][6] = 1 & ~o, a[6][o] = a[o][6] = 1; for (var u = t[2], i = u.length, o = 0; o < i; ++o)for (var l =M 0 == o || o == i - 1 ? 1 : 0, c = 0 == o ? i - 1 : i, s = l; s < c; ++s)f(u[o], u[s], 5, 5, [31, 17, 21, 17, 31]); if (x(r)) for (var h = C(r, 6, 7973, 12), v = 0, o = 0; o < 6; ++o)for (var s = 0; s < 3; ++s)n[o][_ - 11 + s] = n[_ - 11 + s][o] = h >> v++ & 1, a[o][_ - 11 + s] = a[_ - 11 + s][o] = 1; return { matrix: n, reserved: a } }, S = function ($, r, e) { for (var t = $.length, _ = 0, n = -1, a = t - 1; a >= 0; a -= 2) { 6 == a && --a; for (var o = n < 0 ? t - 1 : 0, f = 0; f < t; ++f) { for (var u = a; u > M a - 2; --u)!r[o][u] && ($[o][u] = e[_ >> 3] >> (7 & ~_) & 1, ++_); o += n } n = -n } return $ }, y = function ($, r, e) { for (var t = v[e], _ = $.length, n = 0; n < _; ++n)for (var a = 0; a < _; ++a)r[n][a] || ($[n][a] ^= t(n, a)); return $ }, E = function ($, r, e, t) { for (var _ = $.length, n = 21522 ^ C(e << 3 | t, 5, 1335, 10), a = 0; a < 15; ++a) { var o = [0, 1, 2, 3, 4, 5, 7, 8, _ - 7, _ - 6, _ - 5, _ - 4, _ - 3, _ - 2, _ - 1][a], f = [_ - 1, _ - 2, _ - 3, _ - 4, _ - 5, _ - 6, _ - 7, _ - 8, 7, 5, 4, 3, 2, M 1, 0][a]; $[o][8] = $[8][f] = n >> a & 1 } return $ }, k = function ($) { for (var r = function ($) { for (var r = 0, e = 0; e < $.length; ++e)$[e] >= 5 && (r += 3 + ($[e] - 5)); for (var e = 5; e < $.length; e += 2) { var t = $[e]; $[e - 1] == t && $[e - 2] == 3 * t && $[e - 3] == t && $[e - 4] == t && ($[e - 5] >= 4 * t || $[e + 1] >= 4 * t) && (r += 40) } return r }, e = $.length, t = 0, _ = 0, n = 0; n < e; ++n) { var a, o, f = $[n]; a = [0]; for (var u = 0; u < e;) { for (o = 0; u < e && f[u]; ++o)++u; for (a.M push(o), o = 0; u < e && !f[u]; ++o)++u; a.push(o) } t += r(a), a = [0]; for (var u = 0; u < e;) { for (o = 0; u < e && $[u][n]; ++o)++u; for (a.push(o), o = 0; u < e && !$[u][n]; ++o)++u; a.push(o) } t += r(a); var i = $[n + 1] || []; _ += f[0]; for (var u = 1; u < e; ++u) { var l = f[u]; _ += l, f[u - 1] == l && i[u] === l && i[u - 1] === l && (t += 3) } } return t + 10 * (Math.abs(_ / e / e - .5) / .05 | 0) }, L = function (r, e, t, _, n) { var a = $[e], o = b(e, t, r, d(e, _) >> 3); o = A(o, a[1][_], f[a[0][_]]M ); var u = N(e), i = u.matrix, l = u.reserved; if (S(i, l, o), n < 0) { y(i, l, 0), E(i, l, _, 0); var c = 0, s = k(i); for (y(i, l, 0), n = 1; n < 8; ++n) { y(i, l, n), E(i, l, _, n); var h = k(i); s > h && (s = h, c = n), y(i, l, n) } n = c } return y(i, l, n), E(i, l, _, n), i }, R = { generate: function ($, e) { var _ = (e = e || {}).version || -1, n = { L: 1, M: 0, Q: 3, H: 2 }[(e.ecclevel || "L").toUpperCase()], a = e.mode ? ({ numeric: 1, alphanumeric: 2, octet: 4 })[e.mode.toLowerCase()] : -1, o = "mask" inM e ? e.mask : -1; if (a < 0) a = "string" == typeof $ ? $.match(r) ? 1 : $.match(t) ? 2 : 4 : 4; else if (!(1 == a || 2 == a || 4 == a)) throw "invalid or unsupported mode"; if (null === ($ = w(a, $))) throw "invalid data format"; if (n < 0 || n > 3) throw "invalid ECC level"; if (_ < 0) { for (_ = 1; _ <= 40 && !($.length <= m(_, a, n)); ++_); if (_ > 40) throw "too large data" } else if (_ < 1 || _ > 40) throw "invalid version"; if (-1 != o && (o < 0 || o > 8)) throw "invalid mask"; return L($, _, a, n, o) }, genM erateHTML: function ($, r) { for (var e = (r = r || {}).fillcolor ? r.fillcolor : "#FFFFFF", t = r.textcolor ? r.textcolor : "#000000", _ = R.generate($, r), n = Math.max(r.modulesize || 5, .5), a = Math.max(null !== r.margin ? r.margin : 4, 0), o = document.createElement("div"), f = _.length, u = ['<table border="0" cellspacing="0" cellpadding="0" style="border:' + n * a + "px solid " + e + ";background:" + e + '">'], i = 0; i < f; ++i) { u.push("<tr>"); for (var l = 0; l < f; ++l)u.push('<td style="width:' + n + M "px;height:" + n + "px" + (_[i][l] ? ";background:" + t : "") + '"></td>'); u.push("</tr>") } o.className = "qrcode"; var c = document.createRange(); c.selectNodeContents(o); var s = c.createContextualFragment(u.join("") + "</table>"); return o.appendChild(s), o }, generateSVG: function ($, r) { var e = (r = r || {}).fillcolor ? r.fillcolor : "#FFFFFF", t = r.textcolor ? r.textcolor : "#000000", _ = R.generate($, r), n = _.length, a = Math.max(r.modulesize || 5, .5), o = Math.max(r.margin ? r.margin : 4, 0), f = a M * (n + 2 * o), u = document.createElementNS("http://www.w3.org/2000/svg", "svg"); u.setAttribute("viewBox", "0 0 " + f + " " + f), u.setAttribute("style", "shape-rendering:crispEdges"); var i = document.createDocumentFragment(), l = document.createElementNS("http://www.w3.org/2000/svg", "style"); l.appendChild(document.createTextNode(".bg{fill:" + e + "}.fg{fill:" + t + "}")), l.setAttribute("scoped", "scoped"), i.appendChild(l); var c = function ($, r, e, t, _) { var n = document.createElementNS("http://www.w3.orgM /2000/svg", "rect") || ""; return n.setAttributeNS(null, "class", $), n.setAttributeNS(null, "fill", r), n.setAttributeNS(null, "x", e), n.setAttributeNS(null, "y", t), n.setAttributeNS(null, "width", _), n.setAttributeNS(null, "height", _), n }; i.appendChild(c("bg", "none", 0, 0, f)); for (var s = o * a, h = 0; h < n; ++h) { for (var v = o * a, x = 0; x < n; ++x)_[h][x] && i.appendChild(c("fg", "none", v, s, a)), v += a; s += a } return u.appendChild(i), u }, generatePNG: function ($, r) { var e, t = (r = r || {}M ).fillcolor ? r.fillcolor : "#FFFFFF", _ = r.textcolor ? r.textcolor : "#000000", n = R.generate($, r), a = Math.max(r.modulesize || 5, .5), o = Math.max(null != r.margin ? r.margin : 4, 0), f = n.length, u = a * (f + 2 * o), i = document.createElement("canvas"); if (i.width = i.height = u, !(e = i.getContext("2d"))) throw "canvas support is needed for PNG output"; e.fillStyle = t, e.fillRect(0, 0, u, u), e.fillStyle = _; for (var l = 0; l < f; ++l)for (var c = 0; c < f; ++c)n[l][c] && e.fillRect(a * (o + c), a * (M o + l), a, a); return i.toDataURL() } }; return R }, root.QRCode = definition();</script> let $ = document.querySelector.bind(document); let $$ = document.querySelectorAll.bind(document); let url_params = new URLSearchParams(window.location.search); let url_keys = url_params.keys(); for (let key of url_keys) $_GET[key] = url_params.get(key); function encodeBase64(file) { return new Promise(function (resolve, reject) { let imgReader = new FileReader(); imgReader.onloadend = function () { resolve(imgReader.result.toString()); imgReader.readAsDataURL(file); function base64ToHex(str) { const raw = atob(str); let result = ''; for (let i = 0; i < raw.length; i++) { const hex = raw.charCodeAt(i).toString(16); result += (hex.length === 2 ? hex : '0' + hex); return result.toLowerCase(); return Uint8Array.from(hex.match(/.{1,2}/g).map((byte) => parseInt(byte, 16))); function bytesToHex(bytes) { return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); function textToHex(text) { var encoder = new TextEncoder().encode(text); return [...new Uint8Array(encoder)] .map(x => x.toString(16).padStart(2, "0")) <h1>LOOT for Taproot</h1> d="error-msg" style="display: none;margin-top:20px;margin-bottom:20px;color:red;"></div> <h2 class="safari_warning">Looting may not work in safari browser. If you are using that, consider switching.</h2> <form id="app-form"> <label for="taproot_address">LOOT receiving address <span class="type_of_address">(taproot)</span></label> <input id="taproot_address" class="address" placeholder="Enter a taproot address from an ordinals wallet"> <p>Select a feerate | sats/vB: <span id="sats_per_byte">1</span></p> <div id="sliderange"> <input class="form-range" id="sats_range" type="range" min="1" max="100" value="4"> var slider = document.getElementById("sats_range"); var output = document.getElementById("sats_per_byte"); output.innerHTML = slider.value; slider.oninput = function () { output.innerHTML = this.value; $$('.fee .num').forEach(function (itemM item.style.backgroundColor = "grey"; <div style="margin-top: 20px; margin-bottom: 20px; text-align: center;"> <button class="submit btn btn-primary">Loot!</button> <button style="display:none;" class="startover btn btn-primary">Reset</button> <div class="display"></div> <div style="display: none;" class="file"></div> // adjust for your needs let padding = 10000; // default paM dding as of ord native wallet let encodedAddressPrefix = 'bc'; // mainnet: 'bc', signet/testnet: 'tb' let mempoolNetwork = ''; // mainnet: '', 'signet/', 'testnet/' // no changes from here const privkey = bytesToHex(cryptoUtils.Noble.utils.randomPrivateKey()); let proceed = false; $('.startover').addEventListener("click", async function () { location.reload(); $('.submit').addEventListener("click", async function () { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Invalid taproot address.'; $('#error-msg').style.display = 'none'; $('#error-msg').innerHTML = ''; let weapons = [ "Warhammer", "Quarterstaff", "Long Sword", "Short Sword"M "Ghost Wand", "Grave Wand", "Bone Wand", "Chronicle", let chestArmor = [ "Divine Robe", "Silk Robe", "Linen Robe", "Demon Husk", "Dragonskin Armor", "Studded Leather Armor", "Hard Leather Armor", "Leather Armor", "Holy Chestplate", "Ornate Chestplate", "Chain Mail", let headArmor = [ "Ancient Helm", "Ornate Helm", "Great Helm", "Full Helm", "Demon Crown", "Dragon's Crown", "Leather Cap", "Divine Hood", "Silk Hood", "Linen Hood", let waistArmor = [ "Ornate Belt", "Plated Belt"M "Mesh Belt", "Heavy Belt", "Demonhide Belt", "Dragonskin Belt", "Studded Leather Belt", "Hard Leather Belt", "Leather Belt", "Brightsilk Sash", "Silk Sash", "Wool Sash", "Linen Sash", let footArmor = [ "Holy Greaves", "Ornate Greaves", "Chain Boots", "Heavy Boots", "Demonhide Boots", "Dragonskin Boots", "Studded Leather Boots", "Hard Leather Boots", "Leather Boots", "Divine Slippers", "Silk Slippers", "Wool Shoes", "Linen Shoes", let handArmor = [ "Holy Gauntlets", "Ornate Gauntlets", "Gauntlets", "Chain Gloves", "Heavy Gloves", "Demon's Hands", "Dragonskin Gloves", "Studded Leather Gloves", "Hard Leather Gloves", "Leather Gloves", "Divine Gloves", "Silk Gloves", "Wool Gloves", "Linen Gloves", let necklaces = [ "Gold Ring", "Silver Ring", "Bronze Ring", "Platinum Ring", "Titanium Ring" let suffixes = [ "of Giants", "of Titans", "of Perfection", "of Enlightenment", "of Protection", "of Vitriol", "of the Fox", "of Detection", "of Reflection", "of the Twins" let namePrefixes = [ "Agony", "Apocalypse", "Armageddon", "Beast", "Behemoth", "Blight", "Blood", "Bramble", "Brimstone", "Brood", "Carrion", "Cataclysm", "Chimeric", "Corpse", "Corruption", "Damnation", "Death", "DemM on", "Dire", "Dragon", "Dread", "Doom", "Dusk", "Eagle", "Empyrean", "Fate", "Foe", "Gale", "Ghoul", "Gloom", "Glyph", "Golem", "Grim", "Hate", "Havoc", "Honour", "Horror", "Hypnotic", "Kraken", "Loath", "Maelstrom", "Mind", "Miracle", "Morbid", "Oblivion", "Onslaught", "Pain", "Pandemonium", "Phoenix", "Plague", "Rage", "Rapture", "Rune", "Skull", "Sol", "Soul", "Sorrow", "Spirit", "Storm", "Tempest", "Torment", "Vengeance", "Victory", "Viper", "Vortex", "Woe", "Wrath", "Light's", "Shimmering" let nameSuffixes = [ "Instrument", function pluck(item, keyPrefix, key) { let rand = Math.floor(parseInt(textToHex(keyPrefix) + textToHex(MaM th.floor(Math.random() * 9800)), 16) / 10**3); let output = item[Math.floor(rand % item.length)]; let greatness = rand % 22; if(greatness > 14) output = output + ' ' + suffixes[rand % suffixes.length]; if(greatness >= 19) let pre = namePrefixes[rand % namePrefixes.length]; let suf = nameSuffixes[rand % nameSuffixes.length]; if(greatness == 19){ output = '"'+pre+' '+suf+'" ' + output; output = '"'+pre+' '+suf+'" ' + output + ' +1'; return output; let svg = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350">' + '<style>.base { fill: white; font-family: serif; font-size: 14px; }</style>' + '<rect width="100%" height="100%" fill="black" />' + '<text x="10" y="20" class="base">' + pluck(weapons, "WEAPON", privkey) + '</texM '<text x="10" y="40" class="base">' + pluck(chestArmor, "CHEST", privkey) + '</text>' + '<text x="10" y="60" class="base">' + pluck(headArmor, "HEAD", privkey) + '</text>' + '<text x="10" y="80" class="base">' + pluck(waistArmor, "WAIST", privkey) + '</text>' + '<text x="10" y="100" class="base">' + pluck(footArmor, "FOOT", privkey) + '</text>' + '<text x="10" y="120" class="base">' + pluck(handArmor, "HAND", privkey) + '</text>' + '<text x="10" y="140" clM ass="base">' + pluck(necklaces, "NECK", privkey) + '</text>' + '<text x="10" y="160" class="base">' + pluck(rings, "RING", privkey) + '</text>' + let _mimetype = "image/svg+xml"; files.push({ name: '', hex: textToHex(svg), mimetype: _mimetype, sha256: '' }); console.log(files); if (files.length == 0) { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Nothing to inscribe. Please upload some files or use one of the adM let _padding = padding; if (!isNaN(_padding) && _padding <= Number.MAX_SAFE_INTEGER && _padding >= 1) { padding = _padding; $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Invalid padding. Please enter a sats amount for each inscription.'; $('.submit').style.display = "none"; $('.startover').style.display = "inline-block"; const KeyPair =M cryptoUtils.KeyPair; const seckey = new KeyPair(privkey); const pubkey = seckey.pub.rawX; const ec = new TextEncoder(); let inscriptions = []; let total_fee = 0; let feerate = $('#sats_range').value; let base_size = 320; const hex = files[0].hex; const data = hexToBytes(hex); const mimetype = ec.encode(files[0].mimetype); const script = [ 'OP_CHECKSIG', const leaf = await BTON.Tap.getLeaf(BTON.Script.encode(script)); const [tapkey] = await BTON.Tap.getPubkey(pubkey, [leaf]); const cblock = await BTON.Tap.getPath(pubkey, leaf); let inscriptionAddress = BTON.Tap.encodeAddress(tapkey, encodedAddressPrefix); console.log('Inscription address: ', inscriptionAddress); console.log('Tapkey:', tapkey); let txsize = M 600 + Math.floor(data.length / 4); if (files[0].sha256 == '') { txsize = 600 + Math.floor(data.length / 4); console.log("TXSIZE", txsize); let fee = feerate * txsize; total_fee += fee; inscriptions.push( leaf: leaf, tapkey: tapkey, cblock: cblock, inscriptionAddress: inscriptionAddress, txsize: txsize, script: script ddress = BTON.Tap.encodeAddress(tapkey, encodedAddressPrefix); console.log('Funding address: ', fundingAddress); let toAddress = $('.address').value; console.log('Address that will receive the inscription:', toAddress); let decodedToAddress = "5120" + BTON.Tap.decodeAddress(toAddress).hex; console.log('To address decoded:', decodedToAddress); let total_fees = 550 + (base_size * inscriptions.length) + total_fee + (padding * inscriptions.length); $('.display').M style.display = "block"; $('#setup').style.display = "none"; let html = `<p>I. Send the exact amount of <strong>${total_fees} sats</strong> to the address below.</p><p><input readonly="readonly" id="fundingAddress" type="text" value="${fundingAddress}" style="width: 100%;" /></p>`; html += '<p>II. Copy and paste the resulting transaction id from your wallet below and proceed.</p>'; html += '<p><input id="txid" value="" style="width: 70%;"> <button onclick="proceedRawTx();" style="widthM : 20%">Proceed</button>'; $('.display').innerHTML = html; await waitToProceed(); let txid2 = $('#txid').value.trim(); async function inscribe(inscription, vout) { document.getElementById('modal-reset').style.display = 'block'; const redeemtx = { version: 2, txid: txid2, vout: vout, prevout: { value: total_fees, scriptPubKey: '5120' + inscription.tapkey }, witness: [] output: [{ value: total_fees - inscription.fee, scriptPubKey: decodedToAddress locktime: 0 console.log(redeemtx); const sig = await BTON.Sig.taproot.sign(seckey.raw, redeemtx, 0, { extention: inscription.leaf }); redeemtx.input[0].witness = [sig, inscription.script, inscription.cblock]; console.dir(redeemtx, { depth: null }); let rawtx2 = BTON.Tx.encode(redeemtx); ay').innerHTML = '<p>III. Copy & paste the entire Raw transaction below and broadcast it using "https://mempool.space/tx/push".</p>'; $('.display').innerHTML += '<p>After broadcasting, you will get a link to the transaction on Mempool. Once the transaction went through, you looted successfully.</p>'; $('.display').innerHTML += '<p><textarea style="width: 100%; height: 500px;">' + rawtx2 + '</textarea></p>'; for (let i = 0; i < inscriptions.length; i++) { function proceedRawTx() { if ($('#txid').value.trim() == '') { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Please enter a transaction id'; $('#error-msg').style.display = 'none'; $('#error-msg').innerHTML = ''; proceed = true; function arrayBufferToBuffer(ab) { var buffer = new buf.Buffer(ab.byteLength) var view = neM for (var i = 0; i < buffer.length; ++i) { buffer[i] = view[i] function hexString(buffer) { const byteArray = new Uint8Array(buffer) const hexCodes = [...byteArray].map(value => { return value.toString(16).padStart(2, '0') return '0x' + hexCodes.join('') async function fileToArrayBuffer(file) { return new Promise(function (resolve, reject) { const reader = new FileReadeM const readFile = function (event) { const buffer = reader.result resolve(buffer) reader.addEventListener('load', readFile) reader.readAsArrayBuffer(file) async function bufferToSha256(buffer) { return window.crypto.subtle.digest('SHA-256', buffer) async function fileToSha256Hex(file) { const buffer = await fileToArrayBuffer(file) const hash = await bufferToSha256(arrayBufferToBuffer(buffer)) return hexString(hash) async function waitToProceed() { while (!proceed) { await sleep(10); function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); function isValidTaprootAddress(address) { BTON.Tap.decodeAddress(address).hex; return true; function waitSomeSeconds(number) { let num = number.toString() + "000"; return new Promise(function (resolve, reject) { setTimeout(function () { resolve(""); async function postData(url, json, content_type = "", apikey = "") { let rtext = ""; function inner_post(url, json, content_type = "", apikey = "") { let xhttp = new XMLHttpRequest(); xhttp.open("POST", url, true); if (content_type) { xhttp.setRequestHeader(`Content-Type`, content_type); if (apikey) { xhttp.setRequestHeader(`X-Api-Key`, apikey); xhttp.send(json); return xhttp; let data = inner_post(url, json, content_type, apikey); data.onerror = function (e) { rtext = "error"; async function isResponseReady() { return new Promise(function (resolve, reject) { if (rtext == "error") { resolve(rtext); if (!data.responseText || data.readyM setTimeout(async function () { let msg = await isResponseReady(); resolve(msg); resolve(data.responseText); let returnable = await isResponseReady(); return returnable; function dotLoop(string) { if (!$('.dots')) { setTimeout(function () { dotLoop(string); string = string + "."; string = "."; $('.dots').innerText = string; setTimeout(function () { dotLoop(string); function timer(num) { $('.timer').style.display = "none"; num = num - 1; $('.timer').innerText = num; setTimeout(function () { function satsToBitcoiM if (sats >= 100000000) sats = sats * 10; let string = String(sats).padStart(8, "0").slice(0, -9) + "." + String(sats).padStart(8, "0").slice(-9); if (string.substring(0, 1) == ".") string = "0" + string; return string; function modalVanish() { $(".black-bg").style.display = "none"; $(".modal").style.display = "none"; $$('.fee').forEach(function (item) { item.onclick = function () { $$('.fee .num').forEach(function (item2M item2.style.backgroundColor = "grey"; this.getElementsByClassName("num")[0].style.backgroundColor = "green"; $('#sats_per_byte').innerText = Number(this.getElementsByClassName("num")[0].innerText); $('#sats_range').value = Number(this.getElementsByClassName("num")[0].innerText); function isValidAddress() { if (!isValidTaprootAddress($('.address').value)) { return false; tion checkAddress() { if (!isValidAddress()) { $('.address').style.backgroundColor = "#ff5252"; $('.address').style.border = "2px solid red"; $('.type_of_address').style.border = "1px solid white"; $('.address').style.backgroundColor = "initial"; $('.address').style.border = "1px solid white"; $('.type_of_address').style.borderStyle = "none"; $('.address').onchange = checkAddress; $('.address').onpaste = checkAdM $('.address').onkeyup = checkAddress; async function init(num) { let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); if (isSafari) $('.safari_warning').style.display = "block"; num = num + 1; await waitSomeSeconds(10); <div class="black-bg" onclick="modalVanish();"></div> <div class="modal"> <span id="descendants-warning" style="display:none;color:redM ;margin-bottom: 20px;font-size: 13px;">For the remaining inscriptions, please wait for the parent transaction to confirm. Do NOT close this window.</span> <div class="modal-content text-truncate"></div> <button id="modal-reset" class="btn btn-primary" style="margin-top: 15px; display: none;" onclick="location.reload();">Reset <hr style="margin-top: 30px;" /> <div style="margin-top: 20px; text-align: center;"> LOOT for Taproot is an Ordinals experiment by hLcttps://rarity.garden. App inspired by https://inscribetheplanet.com/. text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"> <tiff:Compression>1</tiff:Compression> <tiff:Orientation>1</tiff:Orientation> <tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation> <tiff:ResolutionUnit>2</tiff:ResolutionUnit> </rdf:Description> %d/Foundry USA Pool #dropgold/ 7j5ion:17.Qmb2cfns8uEafoYq85zbnKoLZc9yUgHokbM9QZR4T9VDXJ FjDOUT:D3A6ABB2F8DAE0DA0DF5A46E9FFA88A6660FCAB528DEB582C97A5F7D609F3B58 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grimoire</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">War Cap</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Ornate Greaves</text><text x="10" y="120" class="base">Holy Gauntlets<Lr/text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul of Titans</text><text x="10" y="40" class="base">Plate Mail of Anger</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Leather Boots of Anger</text><text x="10" y="120" class="bL ase">Divine Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring of Vitriol</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Mace of Skill</text><text x="10" y="40" class="base">"Vortex Tear" Chain Mail of Rage</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Divine Slippers of Rage</text><text x="1L 0" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring of the Fox</text></svg>h! text/plain;charset=utf-8 3{ "p": "sns", "op": "reg", "name": "berkley.sats" }h! text/plain;charset=utf-8 2{ "p": "sns", "op": "reg", "name": "paycom.sats" }h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Book</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Hard Leather Belt of Brilliance</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="baseL ">"Morbid Root" Heavy Gloves of Brilliance</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Falchion</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">Heavy Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="120" class="base">Linen Gloves</teLpxt><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Platinum Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Ghost Wand</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="base">Studded Leather GLtloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Quarterstaff</text><text x="10" y="40" class="base">Demon Husk</text><text x="10" y="60" class="base">Divine Hood</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Silk Slippers</text><text x="10" y="120" class="base">Wool GloLtves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Short Sword</text><text x="10" y="40" class="base">Linen Robe</text><text x="10" y="60" class="base">Crown</text><text x="10" y="80" class="base">Studded Leather Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="base">Demon's LwHands</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Mace</text><text x="10" y="40" class="base">Shirt</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="120" class="base">Heavy Gloves</text>Ly<text x="10" y="140" class="base">Necklace of Brilliance</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Vengeance Whisper" Ghost Wand +1</text><text x="10" y="40" class="base">"Grim Bite" Linen Robe</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="1L 20" class="base">Ornate Gauntlets</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! text/html;charset=utf-8 <html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'> <title>Timechain Collection - Series 2 - Item 83</title> <style>:root{height:100%}body{background-color:#000;margin:0;height:100%}.image{position:absolute;display:flex;align-items:center;justify-content:space-around;width:100%;height:100%;opacity:0}.image img{max-width:100%;max-height:100%}.ascii{position:absolute;font-family:Courier;font-weight:700;overflow:hidden;width:100%;height:100%;opacity:0;display:flex;align-iM tems:center;justify-content:space-around}.overview{width:100%;height:100%;position:absolute;display:flex;align-items:center}.overview-text{font-size:min(max(3vw,6pt),16pt);background-color:#000;color:#fff;margin:auto;padding:1vw 5vw}.hidden{display:none}h1,h3{text-align:center}h1{margin:0}h3{margin-top:0}p{margin:2vh}.fadeIn{animation:fadeIn 2s ease-in 1 normal forwards}.fadeOut{animation:fadeOut 2s ease-out 1 normal forwards}@keyframes fadeOut{0%{opacity:1}50%{opacity:0;font-size:24pt}100%{opacity:0;font-size:36ptM }}@keyframes fadeIn{0%{opacity:0;font-size:36pt}50%{opacity:.5;font-size:24pt}100%{opacity:1}}</style> <script>const img="H4sIAAAAAAAAE+y9S4/lNpct+F88PmiID1FUDbtHPajuSc8KNYhHJm4BF/01CjW4wMX97y1yrUVuStSJyHTa/tK2TxxnMPQiuRf3e1P/85e3//byn//68v/98i//8xf3y7/88r/98vjFH/8+jk84/n07/o3Hv/84/l2Pf8uRdPz/P45/t+Pf//f4Nx///tfx7378+3r865bjl/+z/FLu+P+UX8ot//fyS7nn/1F+KTf9v8sv5a7/1y//6/HL2z/++z9sV5b6H/uz5PJhp2pjYc+Oc9BYcWSppyU1Fna0npbZW6dG6bJXo/Y7ZLe4RZ1fc8g+awRbXnNcNIyjtYSssWyLWqUfKceMVqrH1Np4He6SeR1aO65bQh1z6cu6+MWV63zpS8wOY/M O+HnO59tMH9HOp/fSlL2lRa+WIcF1Ci9eVvuxLOnpTWqUvL7mMsLQqKZdytEz5Ulsvy1ZbpS973jNadV6WYxS1FeoYEluYl4R7hjovx5FYW6meqVbpy0t5XulLyDgT8xL2OlrOS1zq09nPWPryvrzkXI/52npdcj1W4Zt1rPTlNXNEccVdljr2WPqSj17XvkTOC1sVLgJf3DG7wMS68Lp6l9XVWcqYlxV9eVnq09fA1lZbsY42Y5bWtWJCd6nzsqi1oZXrvKyYlw1jWHcdq3gHXlbMS6p4OUZQZzBVvGQdCxVLOhbVqseAl+NTj7W+1GOlLz57jD1ltA6EltZOFNR+bovoXlsO9MPzNl97xidsgXepKN+4jtCXbRU+a0vrCHcpfQkLV+qGvpBGW8VL6Wc5lkEj3jNXvOTX/FKPlb58Xd7zW22VvnzJBT+lFXEmsJTXih5SLCchpJ651edxlnIWHeqxvfYzALs7aMQzd9IId9kbjWorVNRxfHusXIpzvYO/cK530gM iztG+4Ltf53MHquPr3vfZ6A16OP1YQ8jbHWRWFXGVu8WIjaIaKi8YnIydgxVHMzo6V5pbSpS/L27Esa7P06WsuM1ubuTbLtNdm6dWbeIurLHhfuDBd5cEVEWiC8a06GtiMuDYKWmiuFdntaAIpADznRDUMv7LiqOl3lReHMhvg/UslAKfVVW5cboRbVXbsxaqdD6IBjkaNCEfXymezmhVKYj2u8uTcJIkHmLyeu9cBqhsBy0wCinx55fArY347phV3rpz5/eCGG+RXrDR65bRX3vxleclsJpy88OStctKdyKnsuRAMQ6j8eWtDqAw6aQG4KJRTUnoxGDQDSMaZrEw6SJS5yqWdVrmLiUQBGCqfLvTlg+pcNbEb2St2g6xafa68OmsFu8qsc5u6yq0rUXA0QjRygOtKSclmqrORCFFw7KY1rKCg1tG6k4thvAnCLPFWlWvXicVR9EprofLtLLnkKuOu1+LoKhmGZqosUVBJG/kQelWZdxaDdpV75zZXG0Usb1X599M 7IXRl47s0g7oeTKU507comtR+sQbJmV7l44U6gb2XjVWjhZOhDunPmXPFWlZOntmArKy945VFyBt6qMvP6XDRXQoVaWOKSBCvI0NFEwQzOoJnMoKB6tYuL4kG7UxNHPSeWRwPlKR5U2foqYesqX39bqFc5MnbN1S7OwDujV+1ayBlKCF95+6H6QHj5xWkIOAoKcqX4ytuP4UPH8JW3F6WCzSZtcHKSYEJTehsflCtUyK595e1O/MpDvZY48s5p4aBZevUqFdCDt0sv8Q5zRSB5B92As+Erb181V77y9qLrbWjm2qSI8W4nz4GGLN4OJuPJ2wkVX3l7Wey4lYcc1DxX3l5Ohcpeebtf2rWYq3YyrRDp8FBayPq83yWe6tFACmZMLHh70S2h8UtZwOQEoF1zFaKGgJNXDRBHU73za37FUeKKVkBovcLJWINkXz6KiwIMERYSdQ8f2SssDR+B9taMFd6vUK98XAVgXEtcsc+Vt5eZxORE9kon7xS4tHGqedJMl8rbjwM EeUKpNTzzzKHpFtcevUDk3QqXy9kPJ4bSvkM67brWJoDhaeyXh5VdQkKzPQyFvU5egedIa8Qn8KnMmK29/WcqnNiFxyqc2V9BXd66qcFuSaWMTQ6i8PbSFU3n7Ik3Sb4tkaD1aeXvtM5rkDBzgBp1BM7lhDW4wafyGuTomBycnigmsssrbC3wxk5vMS0x75e3VbqtH80LkoBuVt/s2zxmm1NvyBkMVclDDJ28P5DnS1DmxGVyUpo/PwJU4Yc5sgkaZuiinfafpwLVQeXtRWwHgytvLLAPeO3QGjbfy9jJATM7eNBk0EzpJEFbefihjGfO8w8yjkuB32L+yhitvTxLWYXGaOjT9LzBXHZqhMtUX2DsBeru4WVjoMdHJ4KKUKaHy9jdBNFTe/kXGdVgoB0HQUHn7mxhUcLKzdjS9EItmoAyF7Q/3iTSZ4FbSN+BoIs9hcyPM0EmX2fQ4Ck1mA3KCp4HOo55an5pAe9LJ0q8qGIJnr9SUlc6TE/vM5sYRsVkpmFcd3SM nL0Ky8vSgfbGINUkqGAJ2ByypU3u4lrUKIEl61V4E6A9Z+gN4uIIWgXtE3k4lYzCT1dnluwNsXrtAQnY6i6UUjnBw4z7hVFK5AlMrbXxpRIjkD+xzpA+N4o5xgAGGkF4yYXMEZIoRmWKHJBJ68wpngdXKVzovXyZGCj80VIkZNachsQkP2ambOM++8c2ngKHm7Oll5e0Ezm15NnAyf2LqwGdnEbCR6xdTUGmQTFNzBkUICFz04IZriV1iS28I7Yx1V3l5NHjS9Fg5OptYH4RW2KJKhKWsCfYbzJYtGG7xSIgr1dk3dJl0U11beHqWbBfJ2yqNQeXs5hmszfFOBM1l5e5kNNqm3686aKzYrBbNXM+tBaAJXG+Rv2MGv3vMXNB2FJuZqR6+06CpvLwokr0WvtI528Suso138CutoB78iqw97ZpMn77wWvsaF3g9wwrhAQ87yfIJfrZiNuATCDJ7JBZyBMxkrbw+SdFG8HSOKy0bw82jWssLRRsF6lHo7dcLo4Od8gzM 8nQm+XOzjSJxN1cqRYhNsVertsjdh4O4YP3p4zABzJ2xOQE8HbF2Iy+oV9xnilt+soOYOawBVBGD2sVGrm0VMX5eR49IpWTPTAFflz9Fkww9FdLKgeDYu6UY8GcFGu3xjoKWI3AiUOHxQ4V3RKB3DRnNmEn2HXUehXO5FTeXthqrzzrpVSmxE2DgV9pE9Gw4/09YF7R+rt8rfDJ1PU+Pog6O1LgqCP8MlIyY8Rc9Wa4Fc75FGMO6UVffAL6YsHrY4Slk0voYmmOAObkWsBU7c22xlN6Fe0JeMKTYburLjSf8VOwicjYypW3u5kXMTK211eeasE/YraZkyIRpHJxMrbncyWmGB5tWs5VwR/AhfdoSJG6u3UVGPaNZO1uWmuGKKoNo78DHFDEIZaQdzgVdPqht7eyF15ezEtsWArby9qLSC6QRd9g84fK2+vbnA0pbfj2gzLS8u58vbSRJ8rby9eCJC78vZCIzaj+AaurXq7NJmY6e4nGLK8amzCsR04/Mrb3UESELM TydleYeX1Q5e2usa/K212bDXraabNHutrbtYiHbATwDi5KGyfu8CFTVYvwybSVQn87nYor/e0rhrAusOjXhZEkrEGykXVBfDHq2jpXCyd2rby9RC123Kr62zMNkxX+9uUd7vcVent+A8zWytvLqYhSVd7+LjCsTvE0xKkqby9qPIJYDlEsgmF1CjViRA5WKmdydbDoOe2r27g0eLSifdl0K1gTL8ejStPDh5x51NNKBfhX8nZai2vl7WWp40EeuNrUhD1IkbpW3h4lJlbEQOXaXStvf22Bucrbi13GGN6CmYQFtAYnboaj8hQhcBeCAIyTI2GGuQqr2AiOJkCUnQwbeQ66EbJmEkeFdlxL3k7VZY2OXOUFTURMNpKbMVEKkTUqCoAhRKzBRNRFrEGy3DXSote1WcsZzV0wq83K2wsIgbrVCZM46jmTPDlonnEyNGRN3QrpLOSsmisehSaTCGDo7Ucn+KBdQKpHk2ITmOfK20tcikfhZ9DkwCcjebSmKGyguWKlMBM ZbefvX/AXerTVtYqpoZnJCLKsknQEj2ugX5Txv0JC1NDZETHaubkZMN87VBonTrl2FDTQTBBBpRL39hZ2k3t6O7mJftUm9XTDLTswcRzFXWUdhD9LCXcnbNVcZEkdQyYmowwCzJA5GlDOJAuRU3l7DhfXkytuPZv5Sj8In87Ucr02vo2gGXstmrEQpQKtNxLyE2D2R9TG4XqNLi4BEn8z7wudCv3pDEDMt0PoIswR/uxZdWmQ7I4y+YA2+YoBpgaeIIem0QJOhnzBV3v4mzp8W8KsVmEwLtD56EtICDZmOo+SQtkGOlJzQjgc5r2a91gUJETQjJ4cnc67Y58rbq7BGc0MzswnOwOhDcsolwYg8dIYXTHvy8tbiZN8kDppBNEJTc8VbNU0GzWY74+QqnRfRiP72pGsRm0hYkilAZ+CySgFc9BVQSQG2M+3uRN7+wqkLkIOURwmx1KypYyz1DYsuVd5ehsBmBiZhTKUAtFMZS5W31yhtPRqVYZLQhOX1Ai6aYiAVMMM AIHzLTURJ9Mhn8KsEnI09+ivKq8c41PtgQy1iqcLUu5M+Y5xVzReMxUW9vTXg/KEQS/O1iFGlljgfxvCoSx2SUjeMFgNdMIKFXlbcXJR/NyttfZDymBO8H9auUoCFHpqsk2YPoZGLEhKljSbYzm+CilM4pgTNosSdEeMlUU+XtB8y4NCpv91JNE3JhcibJ4JM5aA+IbuCiQh1iqS2lZ6PlBQ6cNtiD1JDTBl1U+ThbJhV4VLkfAFLl7cWjjj5X3l5YKuDd9HYMIQdBBSfDdqatkTL8V3TCJPrbNc9Zvj50I9NbSxpV3l4gCnLv4Aw7yb07shEMf1dyFxC7By4rdHIXvwJRwNuLEMGtIHHE6ypvL0yGt8rg/JyrytvLjZCTtDC6xFQj+mTohNnokwlqEu0A0oZYqvyT20INWbdquiiaWIOcq21RlgUSnhZQkLrZ5pTWhJMd1yBW2eYYm1h4lFkWOkp7kL2Cvz2Tm20OEufr8hVNeCBfgY0NeTIFhGhWnSGrSZ8MEbM uRt+86ijVIiG5ec+VxVAl6G5oryc1molhkc+NyxhB8ppRks3LRo89oBugMbzw5AO1vOurZBMkCdIZ3nRzVxNGV/BlUCIlNJLqFjSdjgODtB8x459qrr6/ERoSGvPMoMhmP4eG55O2CWYQuuupaeGujroUHUqiLzBxQE/zK6WTG6ImNKLSDZCvsQUqcjTmNmzLywNupuG70ydBVsq1K38PkUG/Xc+VvZ69WWV48mRKHvVrpFyW5kSdTQFiPJniKhFj4ZOTu2MjbySc3JjgyTXJLsgd5FJ5tWhNbQq+Y3bEhT0aCb2t5Mrh2Q8SEbv9tg371QuRsSC584Xgrby/k5tHIo2yuaOoocPWqoxuBxCbk4KqjOwUBcyEXNvFc+GQWIQd5MvLkb5m44p0zPJAaUeXtmxz7G/3tImjLk8HSyJmzATBU3r43gu7KdMI878o2xErZhSvcaodfVCPaoTMENVdKOjaV1Mzkz43iic/NFLgZR2E7Uzpn6O3LK/S6vMDPQJ0wL4wCgAM Nn5MkoDpuXSKH5imtX8TocTVplOKosC2ShLqQg5jnDJ7NQxGT6ZLKaFVdLa0Jv39WE3k5cZQetL6oJf3vUyYlNJMIzGz2omUUFnKzcj0qU7KFfMcaXvSMVcK2XB5JN2oN8LpLS252ZJ0PvR4ZPplHBg4L0mWf62+lEzV75DHgQfTK0CHKA/4qWSGYOJBXmHOApoljMSE8XN8v0t2vqkCdziC42kQPZmrDoRbIATxEFUKbentnJCM7QjoK3J14bA1cZm5GcEL1qvJ1HQcFVTeQz0EjPUZ4iQJR5MlQ+M2KpBxd9RxN52RmGWF491z4mZw18LrpB3q65gt6u1Ii8MuOXJFvhKaKzOq+Z044+U29fWY2RFs4Gm9D6NDmVt5eJ5VF4ICklc4oSmjgKv6jmOSXRCEeRFaapS5mIZZNRAI53U/kFnrtR6+OtNlKQD9pgeanPWxRjRBMaMrlo3qT1sUn/FXnOBrRnJqgzlkrvVs7w9dGnmjP8DPSa5gytjyHOnJuvD0fBGZM h0kTMsL3qYM/3tIndWbQgWToaGTOMxZ0UBgBzwdgXHM/T2YwbZ9KQRm7Dod84k82SymvB+aFntWIMiN/T2tsqgtzdOuEviIPd9obcWA9wXaH3vGOC+wMbhnfeFnEHNSPaFxPllpTxiM2FpsIIIvP140Dua8BS9wIjbF6xBh4WzO1CQXojdIZ/hBd6A3cHXR9Vld9AZvsD3tcsns/DklcPf0GQch891zLoHU91d1q3Q3Mn6MN7K20sTI0KejOTC7j3XL5uBjILNKCqguVIsvuHOzS+Ko7DouWB3j5yiXc2dgg93DouwUW8VnEiGo15gQDOQXfPaSAnLpvztrK6omswx7Zgc8vYv+Sua8KrRot8DLHouqx3+domnPSI+mBYeRWyinQxvrWo8WIT0ChfcHmmlcq4ifX1g13vl7V/kONoj/KIvehD9ouzzqjhOXZI7fTLUkXbmQJLn7ODtWQBGLFX8al9BwRcdlS7KJjzb7SjkIKN4O/R2paDsCT5kFaAkRS1BsoQ1mNM UM4t5oRolUNFdxYNwZuih9UDvz2zfY+zvzZL4sX9GEn+EdTuN9Q69WcLN9Y4Q3s4kIb4arc2csVWDY4CkiQ943eIoYfNnJ25mKuW+wUjc9CFyU6ZT7tmvq6lHo7cqC2zOzo8Hq94zsaAaqdtYqMdFrz1FgQBPWxBeOF3q7kj12xlKFDfJ28uc9M45DmNHf/gWm1r5Lv8KIdvArRh/2PVDwsd4oUiyyCQ2Z3HunT+ZFzU1NnJw5QB6FRU+b3S0Lw0tMjl8WR2aPnP1lgdrwwpKcBXmQRWCzrWQZ3Q8yWsUjC9PcI6t0FurvbwtrmBbAnk6Sow17lUyhJjcVNk938tFGdgqjckcboppZFEcb2lZe1Fao4o3tleN95f3gKFW1x+LAK97b+XIrf2Eb8VVVSyyejmU932v+2F9PhqF6Lx+0VHl+JEo4n+D6hT5syzGi80ndRfeTQqG2eOyO85H+fvT/K9vwjvS2EuBZy8YsSUZrjjbDrepfUNaKzofz9EX0CE1aso35+4M pwz9GG9y2zXGqJYmwcHzT8Mp887smsVS9Hi1bzw8Brww8jr3RwHO1E/HA+Iry7DX+xmbVsIz+xjW/F/L0Kjyu1H+gZRxtOr3fN1xpIv53nk6Fo/JQJJdKGNgJAuT0PPEW1dsuadT/eXzWZnA8EYmXSH21kQ8R23JP7qR0oV3R+ZJvrv1U/cf0mrI/3hfhnPJbS0i0sgMoab9rFx9Fmus2r8LChDjFrPAzKMnR6tJH11ujRUuU5P8y5eRXeNq0PtYG/Nl+b1LU3Xg/fYZt/OnlUsbWwrrXhKQN/vR3Uf7ZZ9qD1niFdmclytJsgYxs2+SZ8s8pVlUxLVh4j2yiLkjP3aCvKRzwiUPu10WOXPGN/WqhW5zMio/W8S9nlfKHuVXLYLQjX5kY/yo+C4NJ2LJBi4MWh+jU1eqL8dVU2v0P969rWPwpgV5WNOLe0Wgi2GUxu58NO31obDiBKaIcq2Je2/h1TLulId6iDXZfWH8oP4Q2VsFFuLufo4qca6lALW6itNlKGJBM +ck66583r0r5fh7pT7HC93J1DdJitiG/91DOOKvqiJPeb/K+ffY/2yGMg57lOQ2v3h1GNcwTnmYIq/qTC2jRcZ9qpDcyiNzbnRg7k67+SfKI49OsP1hepYJyvcoTy22mU8Dk294Segf42eAT72hocA/tyfj9wKrR9H+dHoh4zMfj7Tdnqb9BX9I/gLcwcdKmVTxwdT7rXeUCtb5NlX3q/yl69fhLcI+qpkG+WyZf3yfity6JiR5BwNCvFXxwyedv81cv2w/yvpq/lZkQrZ6LsiVt/Gg7LZ/CI8MY+njSfB9d7wk0Rf0jNBvn3JXN9JmSA6HrkeOf+M+NJodyif3Y/RcX3Sd9T4BZM12/qi/JA+4pjSs6q6nHsgiL+iiDap0sihinZTVoBDGW1JOGB/NvDnN+FxY9m4ytW5H4L4O0pp63pkG/7Jth6xK8LyoufRkyR5gHLa0PlVRmVFW58ZhY9RtfUZ+lXDH+VHoz/lRxs/5EeTB6iqXZt+jLLa1OnLeEE7f4ezkiM VhDpW1r53+VX4cFr3oxVwf6TMorv2qHA2H6tqvKpxxKK/92vmj7A+uB0/7g+leDhW2vskPlNiGNp+e+yeIP6LINhQHBNuISkm/9QwNM0/Aoc425H4/4o/49czYlzxGqa1XPYPz9DNpfXlupKD1pWpb4VHltoywOdTbpoYXz11tNP+ouM25t+Ga0/yh5rboO6APim6/KrbvPO0P7TDgKT/e1D+vzFP234O+Lxq/dlVo10N/Vhk6am+9gggOxbex6XOovt0W+vCcZ1hB6wX1t8VdBPmBAtyU23yEIHqzHble2J+wkr9xPNz9RvhGFe7BX9rzgb+GN8SOl50V654BBgZjnOc+OKs2iogIfEg/Ri3u0dZeRijGzf184C+2PSsS5T3HQ/nxJjwysV/6ASpya7IR2qu2EOB8c78FVdyjKHfr+2usynfWcfBnyRvU5RZ5yeevcuBx/pjhL36N0tzU8Qz50fGcsHVGuz6Jv7zyONI6pI952h9MAHOe9kc/jv6Jv3mm+ks/QYM 3u2ulN++M163nwukh+okz3q5LzHOp0i/Ti9RvtN12P6HKz3z3Dy6+av20lXkj/LREPpP+G9RtaG07stqUJ92Jo7Qz7rW1MkmH/vmk+svqntioSiEfIj7ZVC6p2K39kGykMr1pvGeuj0TcDf+/iL7A/cpvPnW526huo3X3p62v3uh+PB8lPtiPpp/ZK/sH53BP5K7dt2eUf4nj3THlNvDCnSM9DEW+ZH+63gujEgR5u5bKA/zFA7FTHyxCaQyFvDfPyfKxfxqdcYNpoP76RH6gN/b4fR46m7AOW82b5R1DPW3dKwvkIQsuV6VDR+9rWP0p637V9gQvMH31t90NSpPwTQTs2ZN2vhgybvq+6XtlDKOx9afYYKntL8p/aXtfjfoxHy/+F4t7cNhJCdW9U0Y8LtD9Ef9T3lvXL8Xs5mL+wvUveoR2wPrLGG8RfeH1o+gvbyIXa2/lwnTa8BGRiiN+g0Nc3fQyVvr7p0yj19U0fRa3v3uQXin1LmBH8CtW+vtlbKvdt9EM D+UdO/AwMZ0kdR8Vu0Y92fQYN2vTKj9DymRlF/DIxmMAXPoey3JDmQHqsj/yJeUUCwpNYOkme8Hvab/HOo/d3aRkoo/t1VGe1Q/fumxFMXFLLO6g/wJ/mEAuBiLXN8SfXu2j8J/CVrPhPkr/y7KAJ+a/6RwMi19BuUAb81+RtofzR8q6CgPR/85UV43ZD63Z63KT+Qe0NtTX9hGzE9yUeVA78Lz9zrQfYPCoJrOQvbzBJcdD/5X9Sm/Ut9jUXBjd+jKnhfZE+iLHht8jlwzwfpr4EFBoyNOVQGf1VBiUNpcMGXdqzaiC/SN8O/loU3Vhmw/NkFhj2yxrcrZ5DPZ6HBm+jBSgPJ20D/1d6uh3+84RnBj9zwzCrh0Nrgf0F43sGfxb9RKPxFdVoOlcKvbU8qlAq/tH3TInOXhIfIgjJt4oRq4RftBeCi0pfa/VQv7Hl9Jn94YRuVneJXKBn+0vxbqBne+/nwXzV/HaqG634vPB/++0j+HbmXG4tgXGQBguQ/Koe9SvM 5cZHlZbs9DfEH8PHJjCOkDqB5OzT5S+XBvB/FLXg//aRsf5UcbH+yPozcbjyvLI/M4y5Ta+cwaFz0D7DfZ36gj9n2vs0D+rPGEwPXwxrbSoTlfzFtlxrNDMXHBI/ddY/yDwVYXaX/s2nmN9ofiPygoLhlNxFeU/cb5h/3R9BHUFL82fQVFxe9K5Xex7RhBeqP0rOn3qCt+b/oxCovfmz6FyuLc6bOiiHfVfNL+kPxDcXGt6sXzV0Z59Tz4r5q8RX2xb/6VyGTW3ob8bfhiibH0A9QYvzT+iSLjrflDUGW8KuXAoczYN38u6ox9i3dFJrXK3xC5i4T8jyg13pv/DLXGxfvJ8aQW32Jb/g32Z6N9KfptTm2cvzX5yzb8f4rXoOT4XQmOLm6KD3I8m/gfN/rblImo5yHxNrTnyf/M8bKAoeEtqxZTbfjv5S9B7fGLCngcio/fOx6Q6drXW24FmWyjIjO1+9F/L/qiAnnxWk87/LuKP6AGec3MoncsQm7+GVYhN38RypM Bdsx8j9w+SfweFyLH5f1CJ/Nb5EdJezfN3ymtuQ7jIP477oxr5rfkbUY78tW0PiXrkEs/UboqR65+7HKIiWRlwDiXJRf7pfPgPJE9VlLxpW0RWJTN3y7EseeltZENIPqEw+UXbDTlUJu9N31q57UQ/H/4XrZeV9of0jZVVDqndDwXmUeOV/KC9ggLlvV/vwZ/l30OJsmvybGWtg9Y7ipRDo8/KHSikL62+8RceR/xc9hcKlb+qPM+pUnnXFpVMndL6VK3y2tpIJ4mtHUjvzDbT0zUfjH9of1AULH/RjgoOFcslWYebYAYkdr21+3GvIV0fYV+Kv6Jq+a3ZQyhb3pr/DHXLNR7OduR65PMj/PfKv0Dp8luTFyv3HNJ6RfHyS8svQPVy0XfBn1duTSF+jfrl3Oynlf6r1v81kP9zPdF/1egH+dHpD/mx9Dbjg9T3Ucb8pdlTqGOuyX1oJyUYE1/YObTJW5Qy15Rbtpklrh1NE9cv9VFUMxf5rnYif+f6TMjoja3d+DM PPx/rQTp4oaX5p+g1qml+bPF9pf0hfW1n59kX0YvxD8bqVe0FLv0Fh82vz/6Cy+b3Zoyvj5yxsdyvlh+zFVUUSrY38HMWXVd68Cc+Z+j35MwqcC/55f+46J/8qSpz35k9bs/R7zh/8V0ubz0z/i+7H+If816hzzi2fAIXOS9PHUem8tE1KV8U/hO8d+dptvrBJUZNfqHauhYg8juToRj/sL9rsw8SNilhc6hLzr2RvJaXXkr+j5jmr3sOh6PlNW7+4xB0tJC/S0vgL7wf+8sr1j8Lnoq9sPF/8j3vus/SZ2+E41D5vKlp0KH5ObRtiVD+n5p9OtD8kL1D/7Fp+SOpFcjxO/wv5VWKZnPgZa6BbPAFF0L75s1AFvbf4tcqgxU8T9/iX/zWxWK7NH6vlJF9RCl3mU8fh39ja8aq/5L7TMPqnfWtTaPOH8wOqiJRfg4LoN1VvuaTsW+0vDP9VbvNP/5X4ReKGF/I3oSp66fRACm7jv6iLTs0/gMLotfHjxF0vpI+jNNM orb94lyQ/hJSrtnPMTVSfD/nLri6jxM/6heHJSMq7wEZW5zP5TfrT70f7Q+k+t2EJt+De0ATXKpF3Lr0iMn0tfSLQ/5L9J3AVD8cTErUk34WmFfir7AcXSh/whP0a19FfVy7qkrTC0MXVSfjznI6mgh/1PyNvP7XzlvxDfaeNx4i1Bf274TeB/DU/0X7XNrTfhT23opyw4caicrvyHx5mUrv4g/0rVsw7F07njETtj5LYvd5UfS/NvoX7aqc7GoYDaNXsBFdSuyXuUULumT6KG2mnzAYciatfyB1BF7Zq9hzLqEo8mvRj/SMJTpn5AfTNx51LtKp+4LXWbr92RX6iN+GCbb+5eumr97pHyR21WbLX7JeGJbaxf2TMoqV5Uje5QUx1VRexQVJ2bvxBV1UW/0nHP+drYhn76ok3HuZGp+NNG/5XwhNLql76F+QL9QPIaxdWlrftxTx1tPe5AX9Fzc62Ci8c98ai29rbi/VwkPXS/Jt/YTpovtmlfkh+izDpo8yTHOuM vG3zYW48n/gUpr1/LBUGrtmr65ec0f58Mjvi/6otp6b2+32bQFHvkP6q2XFj9HwfXe7GdUXLtm/2zMv5J+sDF/V/lFLLpeept1XZrPgPiW4pOou95avvPG/F3xS1ReByXtuy2oCEf3R/xD9qKKr6VPbLQ/lD+A8uu9zw/rr8UfUIBd5LPaK+Ul+4sS7Kb/oQb7vemLLMJuW85v3PVU731AGXZqb01AHXZs/ByF2LVSlW3kJ8r+2bg9XltPK/RT6Xfbqvwwrj++Z6bhhf6rRr91p7zj8xNLVDVfiH80/XVr9gfnj/EP5SugKPu105dV2W09sSy74S+xfrbdD/0TP0dldmr+N5Rmx+Yv29o+13xLAe0P6Wcbd0Nt87Nh/Ur/2Gh/KH6PAu3U+D0qtEs0gvjfxJ/f2Gb+Lv0zG19mIP0LVdrvzV+CMu1X7WPsWKfd9FkUamdtB+i2tjMq5yvDPy59b8vaW0L30+ZdXE/YiaOf395Uw/WCd9V0fowXG7T8NVRsvzT/88M bSjza/O9bHLvzs3BSH+geqtr9om0G3qbSP8gV122/tNQso3H5reEPl9kt/OUR7xYHncawPyfvM+IfyWVG9HbSTgUP59mvT51C/XbcIYTtrfnk98ofa8xzL3XU/5F81/Suz0E/8P7P+Q/7aTP+V5ld13LKfUcidm32WmX+lfJvM/F1uweRQy135LY6j/kNbMzpUc39p/lWUc39p8gz13O8tPoqC7pem36KiOzd+mb22VdBx1Qdwvjz5i97twR2y2/mUH/Lfoa676N9vbCu+z/uxsrvNd4B+/6L3fwTtQKbXg2D9yt+K6u5dVV4O5d1788floB1FgP/c5AfxE5mfs+g46z80fxH6qewNFHl/afopqrzftXmRQ5n3S9O3M/feWzXeqKItHQd/fhdeVq0Pnr/Cvmz4WcFfJL8zd86WvMmMn7d3oKD+QxtvORR81/w9tpkf1o6rfIvzw/08Gl6wWVPj5zmpvlrHyf9EL9Z9y7+ZW/xcbcTfWn8T1q/yCVH7/db8Cyj+flM t6m/xP88X6j9afjZXW1CdQAB5bfCGzSlD6kUrAJY/ypr3miCfGP96Fr43596LPJv8p1+um/EnIZxSCf2n5BqgE/9LHl+W/5/gz8ofa+Bj/kH8B1eDvLd6NcvA3c77wp3fiKP9P5+/kl6RHsz94PfOv2v32th0Xz1f+EO+n0kE9b6d+IP7QCsPVVmW4zkd+RG7HkZ+o+6E4PKqQ3u18+5n0pX1p8aMFbawPxYNQIP7S1hMqxF+aPESJeC2b5HHV9+h+yu/c2AZ9tV5QJv61+c93J/2Kb/9xKn7Wa4dAX/GHnflXWv+oFa/8hu0k/sT2Rn6v+8E/tOstR67RF22v+iPenxXjwgdKxtemL6Nm/EVlwm7nhiCyN3bu0ppbW/4DtWW/kV5epf96nnYxYjtwsxKuX9SO57aed8bPJa9RPb42+wvl46nF11E/vrf8dhSQv2pDBKcK8jY/jH8Iz6ghL/KWx6PkL+eH9YN7a3PzINEnMj6T9eaoSHzw+ZG1tZof5O9mbmbpUEM v+pl1wHYrJX7Udj9tZ/yF9BuXkb03/RD15sc/U9mrzfMR/G95W+MfFf1BT/t7ihygqf+v05k5/7b1ZyL9q8g515W/abdXt3DRE8QpVlsseQ2l51Ebcbm97QhF/jH/If4Tq8i/NX4ry8ndz/030YxvyrdEryf/M8zfZR2rT/9KOy3/A69ubdkjfjfEF6g+oM//S8otQaP6l44PxD8V3WGre5CNqzV87/6P90dZDZv6knsdyc8lP1Jvvzb7dc/O/8PqV8lLHuZ1IO5/+tfY8+DcafVj/ofzanVsBNn66I38oqX/cVET2+876QcnLfdfmARzv3ujLtvgf54fV523+UH7e9BvUn5c2XlC0MP9q14vOFunPfKUa4h+SX37hnq/0f3rUn3+Rf9Sj/vyLduX2C7f05jZsfmH+lV7ptbSNX/kaNubvJr3/zdH/zDevof581z5uHvXnqb0xDPXn77J//dJet8bxOdnnfDex01YVOr5pPfB+wN+m+XCcP71UzoO/tPnx2v2O/UM f8Q/FHv3Af2Bc9j5uOvOqtdH4lfvg837ZJYnsjv9ZxboLX7l/9a+1FbkvQZgykF+Pnm+jdXq6pV+hxV5t2PuNben4A/2vj4Yt6yF/8IvkheoRMfJP+AfEFxvs96s/fxb/8EuVf29lGfIb2m1+Yf5VFP24g2PBC/9Wm/kTtL8D+w/6QfeWX9tIetem/Fz1pf+yiF/aaai9wQ/35m/wFHvXnr8q386g/f+vPX1fSn/ReyZ81X6v4M8fL+Dnln0f9+bu2gvIL/Veb6K34uegj/1Vra3288XrlD7H/qe3kwuPgz+/tOPTTV40vSX/mfCX6/zQ/rB/Uy+MWvsun9Ycbx65a35v8Q2pLf1Yb67eNl/WD9Bf7hf6rRo8N9tGr+s89BvXCQdSfv3U8Z+mn7H/Wpk8cXw6UR1wfWetD12vfJ52vLZbY/7YfFfHEl3J6vdGS9eerxrcjvz22F1HCfguiPzYcbK9YQ/352ud/1/4COn+F/NJ4dq4PjR/1H9Kn/LJrfej+oi/wifM rzV9kP3uktbuSPqD/f+tvfkX8l/6JH/fmb7CmvNzDTP+ZRf/6meJF33Fu2H8/CG4+jftDrTZ3df4XjTvLX87i2o9Fx7jWmt3VyG0LxR9Sfr9K/vGv7l3A+XIvPsI31EdvzoN8LT6g/3+TP9O2NzK0N+SZ6ov7c6/0h3tF/1cbT3hKhtvRTnY/8CPF/x/h5bucjv4n+YO8oP/Q+R8f6j0Z/5l+tmr/Q1gePc7M29Z/5V4wHetSfv+R+PeprJf9Ufy7+7Bg/b8dR/6F8B4/685cmb1F/nvr13MeK++V41J/nhm/Unxf5p+u1v8A7r98k73hc+wsQb5Qf7fmr/Ac8TvnBeKp3jJ8zXupRf/7S3tvpGD/Xu1b1zma91Bb1519kH3nUn7/29YRtrUx/FN9nW/lXOp7En9lf2B+5v59W/EVt8L+tnU//OPmj09aF7f7Mf1H/kuKXakO/1wt/HfN3d/WX9kdbr/BftZdmOsY/9KJT1J+n9hZcR/uD/iuP+vO3Jk9Qf7739bM opP4J426Q/s50Z39L53O1K+qmj/Gj9z9KvdD7wJ/3XsX4wav7ov2L8wTv6r9r61IaGWedLvvH+ePXn0vgJ971q/GCXf43zR/vjRfO5N/ucbe3Vp+vlX+P4duGP46H8aONr7wDF/KH+/F3+BO/b/leJx5W/ofMD+a3n+cg/1RtWUX++tpeZov48a5M7j/rzpPiFR/35q+otvecOtsKfZ/6V9EXP94FK/0f9+Uvux5Vfx/62rQ43tmm/qf/wXy27XrzMN1DQn+BRfx61da/33MuW/lrvGT9nPYxH/XmhJ5/vWb+l+fDybzgeh//gRf1H/pX2vPSe9YNru17xLfbHZ7V5vvL/OB68IlTxSs/6c+0H4n3b2Jb9Vfyc/MLzVXLiR6g//9r4M+rPv2inRY/686T4mUf9+Wvu95P/ivdj/aBe2Iv68137mXiv14US/6g/X5Wf6D3rB2Uf+Cj7l8+P8q/p/rKPdFz5nZyvqPp43r+9foj94fuHvtA+Qv15iVewf7Q/tL4997M 960UvB1+af5PW0f4WvlfnjGu+K+iPmw3rUn780/cFTfoh/e+ZftfFj/5LlXXjF/iXLu9ZXYv803iT5prbqB9lfviM6af0m+Yf0PO36x/WwLZR/vN+G9St5p/rzF81Xy78iXjfGpzW+Dfl/UfOB+Ln2h/ae9R/SZzzrP1K7P/Zf29Rfxc91f76daG9t9Y/3Y/5uw29mfV5rI79E/N9zy0TZH577l8he8Nz/SvIc9edRO0t7v6s+mfO/S77pOOLT7Xnc8Vz6iecrRtt6gfxo/gbP/F291Bz152/yV3rUn3/V5pke9edfs9aH6s/FD1h/XvgZ217zwzbzm/Ra+EXxS91P9WW6nv4rjicw/vGV8iIw/vGV9mVg/OPrwuOIf+Qv9Hew/jx/If9D/XlpZ54P+r4Tf6g/L3dnf+i/krwIrvEXtiF/9XJ6vVZa/A3153uTF4Hx86z58coP4/M861PID1B/XsaT2Y5q4/7aNXfRccWPNh5n/bTmE/Ufx3jZP7zxQpsd+9BeeaM G28g84P0H59+wv689XzR/3v1qwH58Pin/QPgvcQDdqflH/oa1cfeD26OIfIah/vH/U/hbAL+rP63h4nPW1WW3kZyeNl5ukb+185ddxvNz/ahd+uH+iE72Qv6v9EX2Q/NB4uJ3upvNX5ZeoDfuS9bk+UH5Iv0H9eanW4HgZP3/j+kT9+devb5S/qD9/b/oy6s835Vt71Z/Lfg/cv2QTnrh/ifzDob3KjvPT4ue8X9L+OexPUv006ZVUv6/2pvXENvhL4xd8o53seb6KWvnXnu+iVr6UR/157v3fAuUl52OT/sL+bsr/0/3pv2rHN/EftrPWA+/P+lXdP0N/kX6I+vO16beoP0+qV/eoP39VvY8Pqv9Q/3OLv7GN/smeQf351vGS5d9l/1F//vVV84/686+Nn6r+XPfn/omNv7H+/EX3V/258MX6D/nXwi7/va7f1ObxLHnKtvR7jCcyfi5/jt5Uzf1aPOrPV+Uf+8j6QdEH9ed78/9Fvj2j3x/2B+u3PerPX5q/ITM L/SvoY6s+T6uU96s9T85/EZn/weZQfmm/Un29N/0X9edQ7gT3qz98V3/OoPy/1u6+8n+ZP14O+ud0f/ivxD9SfJ718wKP+PGr/YR+96t84Xg/8ted77u/D9RkpP3aN39M+avfH/nrCM+rPS4vzq/g5+RXqz7fmD0X9eVD9jI9B9VF8PvKvWjyKr7LWbt0+Kv+qHdf+axxPe3MSx4v6869tfHx3kvCN+vPX5o9B/fna+I1eac18ex/b/lcLj0fyA90P/Fn6dGz7X6mt+JGeh/2bGn1Yf873q3nUn6/az9ij/jw2/wTqz4PqC3xcVR/F50F+6AUTPq7av0lt6vfCA/ZPzMwP9pH2h+JZqD+Pyif3kS9UausF9of2y/aoPz/mu7W5f4nolUDfrPlF/pX2A/SoP39t/ET159KPIvcvafPJNytxfxMfmb/LfG6v+vM3PW+D/0D2Q+Tbldr80H8leywy/4rxc4/6863FC/TWa9nncVN9su4H+6jdn/snKj6A+vPc4imoP/M +i/Wl9pPxgfqVn/bl2WfeR+VeM93vUn793fsh3Lcmej3zZUsNbhv+5zQfiH0vDw97i+zzuyc/VVv4Bn7+DvvI3oP78Re/w9JHyg/X+PjJ+znw2j/rz3OJpqD9/aXjTy7C5U7zX27DFD1F//qJ3THjUn7/r7Q5+5UtT9XzUn++530/xD7WlX628v+RbZBv+XcXzV6f9VTD/ei92Pf6/Hr+8/beX//zXl//6z//4H7/8y7/9m3v8/fmLff798TfV/3qfv6n+V/z8TfW/4udvqv8VP39T/a/4+QtR3ddPeMT6CfwtPNb6ScdnrWf80f38HT5/Aar7g5rhsT3yY3+45fjfdhB7q/+PR6sQPj+cqz/lcK4H05+d/n9ayvu6hjdQ+/jJXOcieeCaT8e/Zb3j76Gu+rWeF//MtP+T0b3waVL7aPr647jIO39PFRNqFSqnipPYMCGZkI9P+HOu/j8N5UHxsrrDw8X640tzGyiezL+RKzxUGku+dw1A1C6IyFUCACH6/NEj/tM Wfn572kuK7RLU7sfeR2HFQ7yzpRfzOENZGYF/P2ygStgqFTPGw/qww+ClJ70kLUWFrWltn7FZ9D5dPaiJeon0l5VNjB/qLb4hI5g79eeHno/1PR3VPJX27fOLk02kcLsdE9WDWuky7jo4r7c84ilUV+Kko/5NRfR3oe6b4SIt7FGg1R67fzuM75Ue6d26wtlWf2r/hZ6P7T0X1lRIVn2xawVAhXKjc/2ZbZ6p3Lj+u+DRQOw1np/bUQ51If/gEffrz05AdWrXIvA0AiI/5An++5EH29UT28WNB0Vn8+S+p3usg/PqHT9MnPz8F2f0jDkb4HSEt6a/r3GpgnyX7+PED6Ue+v9Ye/iR0/4Op/hlp6Kt5dtbKR449t85GBmD1gG+luh8+q1nu/Qw87aeQ738A1f3N77Mziy1V3axXE6wL1St3t3C4CnUpgN9P9i7+++8w/vNwxe9Ozs9+/hCyf0TsripF+V1mVnc6QWD8W7gA4Wq9hW/i8VfSe0P4Qva1OIvioO79kyM Lgn4bJW+2om1DHNF6pfqZnGpZ+5+dXKT/eQ3Tvnplvp7v9wM1/dDk9RkPfIuB75uY3+PzhdD/T25rOGctH1J1b41fL7erFOftyZJf1/88o/xGdr2u/PKUEe0dd79eR/89G9vNMWOaIYFmNoilaOpL9LN/vrbjrcrdw6ab3ryV65eULNJGtKvXgWGGK6c9kePz51ru/zPL6sO6Q5gRxLSAeB8k94/r3vrk7GFjCfx9nv+r4W03b2Nsdz4Pq98XR+9X/ZyL7c4KP+llj8pbNdx39SvxRX3/urJfBlwbe8esIr2tiCQJvt6Mcqd8tQs8Z6pG/3xAJvxvdZxQ/r4XO4VPn8p0rd6qPMLmqdVdz3bruY8NJp3t4nInyfZRH7kblVGEy4vOYz0fs2v/Z17u/TOGc5vhrT3JyvgXOpXyHy9oEtT/P2nWHMEHNrEPfrtqB7rvU+pGq97S/cv6feb1fae5PYx91ue743guz7NrcmWZnHW0u8u95/dkRcLfav0+/K86m6nf4thM U/GjM/J937CLyZvuvYz38R5XdId7liekbUlVKj0f7sM6f9fKV/G901ZAvvqtpf6fyczz+j/T873cdV3rnXvVQfV30S3btMPnP5Tu97CuO3bBIz7qTAM7o/o/4Z6OMnNEN+hPXdM+bM4Tcx9n842a/q2x3YZwyvHxnIHk/Le1zc2fw2RuLHHJkrebqCcBb/MxJ8tMDPjL6JeHGs8/g//vRF4x8f+7f/KLpb99SM5lfs3y3/E5vvkxdP1EZWoyj9EVPutNJk2mPeHLMsZczF+Pxng4Zi9dA7qs/XxVk49o7+c9Dd9m5cSDPu6R9XXmcnGv/K86W/diLnYWl/TOxz7/Q8/f163hXN53F8BCsteRemg7wu9o8FzZn4/xyEPxN9LqrmpJ6PXoRHrqII3jl5upn8sQ/zmYS21cNmI/nL8Xt96gqD0Qtjn5+M387KlPsF/zkB8Osp9iPoPtPXP0v5szQ1dEeFS65OT6XZfGZ1X/nHVWtH4CwYEFh+gDj6R4uqr+8zrxZ4rPM Vxv7A/u9AFUPz7x5C9K0kW6HNCz2Dd21fwMzmxk9qqtPePsrcHj6g32Vk9kU9hOavAKbFyXPzdhTJjrFZGrMRJ7xz+huTas59gTv+PqD7K/B9A/W+mvG///wx7v2fmZ2xY/CMtPgyoujLR60eWfCU6K+NCq3LFBwIEPwCX5QijQL7jKaMbfSUfUt8t50Copoym9/BsNjyj/fVID1+OmsvvvfI/y+avI5sh4jor8WEr0u6cvaOfDiu7uvxI/QYAp/IpNzT3i/V/jdXco8DOhtW/1ceOVaSGnq265xGCj7Ax9u9XoOC7MfCM55+5vh3DGdHzNdFLoeb5LPMESmkIXORBP+7y07nA/sgnFJwTe+6xYHli713/f28hI/ysA4yjv1//H/sCOh1+ewxYzM3oP0q4Ozx3V/04fssR4oMVkBII1kzrELGWwJnNF2IHMYUrFBYrHgCGbkiOudh2+udCQf9aYdDZQqLVMg8WpGEq7ifso8+vYAjfAYMZCM6sevxtxirmy2IU7LM lQr/DRs9kWG9n3qZzvfN8KBn9WEe5+duZadGxYVMyC+1eVBZS3Ak343S9ouEPFs7PsXM5m+zsR8Sk82Njyc5Ew5mCt097PZsDm2vXs2tjoI8Vdsd4Oh4H6zrCCYHgCfo7brfppJfbhcu09VK68Yww53aGDuSi1FGvlXzBui7Lz+riqVHef8znnue/i9RsR8k3oOKus6w1Gruai5RJ3Y7Jh3c3qdz0rQye2fXEGPFzZguUP+FkMpNodrgA7wcxZhMgt+RnVouMj8hmxrWT8H/yj+kaUTBrab/cAeA6UGSv5TrHyaYB83ml09xF1r+JmwjYaYSJ3T9nMXUJTKS6yZFzfV0Wxc/XtJJC6zEhtvVm+/PHwNhLZ4mLjUHbrDT/rU9/CKu4Y8gjSb8DABQF+cuXnrckrOudjWh927FaAgGjHdEFmZO2osjQb3X6kf075hVneO8sErjMolS+bpW+ZmcZ9Pzs2anBmj1U39hgOQJKGMc/Uhtms2b+tp7+cZ9syq/L7j+MDz5M WHGS7n3O2KiHH9d6txb2eAyqA4aFoK5sKw+4q7KA9WdgQrdqzXsk8fubVrhSXpga05rK/xIz/DGElaqWqU4ASdnXjWOelhvshnE3i3pJ591JlPsIVPsIR7KNj2zKl8P5I5KGyFZuUB2HEnPuC36/QIzyyEifgXFBSY2ppHC8QB5UW79EARR/cYndMRRjTMFQUpj4GcZn/E9qx7I+IjMHwLDNahL78WCM+lgv37rG/P+N0VBtaTuEHXooIQwAz6dpne+BnuzM2Ll7n7qaz6503fy+/ZjDSd1IXPfcbFHqpkCiYl5pkpOep7szm748VXU26OgstSP2HgzPHcFAFXNMxwcO713ZhHBtmRQMVdO2ZahWodnI75pC5anc+6J+3jvFnk0PC71de3a5wtrLulr551INT94e6QrjHP4lHz+btS/e7opzjAB6v/ai4+4wWzft3R/Rz7HcVkhJCuhkFX7quinRksOrud84CBEQ1Xe69t3rjQpSnS6/mSCZ81EsvfA6WH/rJPKGM //P7quriv8Ge2fYWI0bD635scz5nQfRz9ynjs8WvFvEX/FQ/cPyCrcSbatYYGVF1cVcpvwgeYa6E7DndK4amlGYZRRp15v3dlQESIm0pWVuV5Q/pJxQzUjFZlO6HD53DPEu+X0bOHPgfDtDOAZCO7AMA8t3WmzVwicvc3WwttFEU/X4EZJO3LWsUYoEhTWdjTxiL2SPcj+7HjATsxdm8syMPHdTtxllBSQAKVL1TAsYMCmbmJE88/z6bk3Ez7ixCOxym/fqgfcmQJ34LgmeVkonLnBtRZgZNZWF/DWB9jcR2tP272zMCw0+ibNhktEieuGLzzpvCcrdMKt4WpQP7ua2VkFlH85vPRX7Whg2d6zcoZnHOKsQNwBYLZ214c/Efs5GD5vDszCjufWHSewrqJxRgbzoFt3WYHmGjfIp87dQ8IGLzcKF5u70FHQ89zkK9OWrXeBTjd6K7H4gQYJOLmmtku3rozh8/JizhyeM43RZLwojlM02OSjZyzoevzckxEL1xGOxbM +aA7vSsqa8RQwK0cq/FRHxgy7O8JEereqPgGhswQ2AsPHm8Bhd14PLajEK6vZArlvknQs0tlNg2qJ0VjH1GamxTn9/BoWR108UiAkYxkTdZzN9N/dzKMxYwjgrnbHbv/fcM4OH8rM2FvHZjnVMRqNEBIMJLx3SAkJyU/CViWJkhdRSdJqsp8q58vTmIL9THa/28r1+PdMePqNHXPXbz6FhhoXPoOMZFvpfrSU1rodzdZh22u+cwWYiRcWZvYlfP/903jO4HK0P2vVMGf8YOUQfvrrcFVX9q0RGaaX5wTTcbMZ6RcOd6LizLz8SFx+jYZr3eEHDHeW/BwvjorzDwqjwjYqf/MAdD03t92IOJoawTafvPJWh3XKa09B5vxKo558Z21nNPEYKoEwT5LlRea9I3A3kKiM+RsRI0c9xh+uIPxOCHfs07+m4MsaZGSuGr5u6b40hF0K2DBQTaJQ/Ipk+j0s6Shd1Iw5sSosf0HCejYsafvlAplCUzTdKOYvGb2MOHQ6zBfM c5INgBfaw4/DoxcYWtZZLpNN4+J+dSYnkRLUeuyv0JC8HScEwwCg/jbxjtgP77SXPo94qNO5xXxJVXnBERhTP3ZPnfI+GePZxRMluM38omnouLzymRcwNvzhzuhObH+8H2UhXrYexZatfMZpuHdsl9uya7eROisG6Jc6KteMU41HtJUr3l6OZyYn3nXbQ+QsQZH7b164SGzIb1U4j4NpTNOMTVzLuKzhm/tHgYY07NARCEiJOGeReWnuYvRPPjH9vjLNbOJF8Hgo/zP4NEoH2xPnaD89non6HCzt99KOMjPjGix2JiIjlulYhvR8TII85HRwNK/8bTbFk82FJnm6+eGbfsmGho+KZs2OtPaJlsd8VZcxXrigvFOanw2N3yZ0zxY2B8Rqg8YxbPbNIO+Tks5qLj2VTcMYpzH++sLatNnqtfbEHE/jiHpcKoUTzJY7ljD9Mfq2MuRp34HD7Gv2JYWX3tr6e6LoWr6DyfNZ/BmdI5Yxpz/PxabIxK6ucZxkxJmgmRq2M qZm8PnGqjOZBjO+CX8DB9uTGd2F7ZxBw5r7S7UUT/DQK5wkZZLBodA7XyLnmeT0v8+Zx0zeDwDy72sUcfvwHG/Fr5XmvTjc7bRYXHOWhhzVzqJW21E4xpX2bIMGugEIR9m2Qtye2dUypG8n4orOzEZ/n5gH7P9mJ9/OkY++syW5YyFzCNiFxbyIUY+/tz1oU/S3WdEiI0nWISQwn7k/HahOzkKhuD2rcC5mjN33ixr77h247FM7x4jNslK/pJIoOxGjRp56H3ryk6+9fOMt38ga34wUEamYpnIXNqMQJH3YaiccIZfNA5i667jFCb3QNlHiaXUe0uM2X76GtrMNrGA2Af+dsG7eNxYMSzmcsdEPqe5/la4mOumH6PiI73jXgs5o2IzWVBk7VY3OC1xrGbNRz/ZN4JP8KGtHJ5P0ec+uhaYaJtJKFpKTMNDrwGbNAAzkHELwZmB8zlr93NsY0a6TvjPQuNzDONbMqzuJMsphcGN/mpbhdlfdKzZLE/dIdx5oTsnxAM xQcVfW4gZRoghpL9S6A02fiGAZhm9MqSdyKG/8PA/KGOhsYyZU7IbSZ5zY2b1jDXO8nFfFt2JjbsHdYeNjtjH6wy0mnFE9m/Q/2ZojQ5ayiD5sSt5WwNTmYg7QsArHMju0PPb2r43E3CMEe3507oU3RoHskWeg63bCegIHrrT7k3xWYf0sQO6Z5a8DyI9jHuEEkAYOdy7PNkZDNHaKM9IhPIJZ2uUTyM2VRdkSLc8J/UbKfFT//9x43buZDAuYBYgoNsIdstVEK4KQpUGTN1hI5k/BYgTHFRZ36sczaPxaWKRT63N8486KvSS+dbI3T8EQ9qJMkSzx7bmQ/ybXU2pFfvrpQumzSsboFK/SIz1a9kUdhnxh6BugmBqKM4e8ndiNgsXXT5c2d4roM0R8tLS/FREzfFwx8DGjGBXPzbCBcHJ0VcdRGFFwVTmvoXHqf0bOhEaHORi61B9Z6TMobGJrIGk/xD9hJteHXgWxPvo7nnc5XaNhb1UAeoqQMxKsUHmmffbWbPM Z/FBbuhcUVDVfqS1BYHOwmzcYwS3uLfaZDKKayPWwQVD3eRq3R2eA5UjDOewidq4F6Gv5MYpDcC3G5XQ5ys2Br8KtMIBFF4heh8Q6clWXQntMMLBg+hsJsCV6hYUF/B4V7NfIZGD4SFRYKZipPNntPdUuYmEG0NjNz4+Cu6h6ofQ6vk5UIELP87HbuJehqlJn80HYCdhpDk3QAxoiCXkg+Tq8mKgykRjy537nb4YOCcU5BeIaQs4JxFvRXzHwfQu4w8+0I2cghxpB071UrAY5DdGt/aLuH+NgakEaebn0CV5AsBlvG2rGnXF3jrvMoiw5MhUyc61t+hQ5pN/40tdJ97o2ZbdCouwoeyD3PL0r4HDzOrGL8SzI9+m3gcZUm4XFiHt1AuOp2qYsYm55lHEOx8YHr5K4NPrO9iMJEtFzdFmcHWDZrtE9rqE+Yv/y5T1VTdS7guO41oHNC565d9+x5CyqSOieqxRtcnHWMzj5mukaXfXNkfDZzZ84sxDHPjAPVU93KRKM 71eU+35gkMZpnYlayaHiFjLOYAvcMUH4N8kiZqwxl5uhKvutwVDDPSOzvDbWbtbHRos+KQlgyskFM9VGoK1D5lE33p9W5bwpwX8RUSHwPi+xJ37FMvimaPFsQBDckScIhZjJk72yNd5l2RCdkad1Do25fK9zUOcq6u+ceMHYj+IxLu/i4dU9lAXkwhUEwm8rnY+2qJYDSa/QTXsbYmPkbqnxfsB07NSwrXOf/ic5iwhY5nPRMMj+kqULLhVXAP3y7cDO28UfmG+KVmwUqMLsL1qugzIAYxsDcl/7mT8vqZcQLbnqPkPPV9mskgBQ3sViXlZTNWrsYnFeYOB9ckP4mIubPqIyRcxcQoo2cKxFWVOZugW+cItMqt1N9HP2LuQvQk9tMjPM7zqlVnjbHuh7juP2J3n5gj4czz7/jCPafwlx52iYCqU+GhJ/Np9QMItl/SKccUrziFwJ2R8UQofHeO79V4mcvWEwRkkI8vFNK2c4M9MCbuWXeiten6kzsrCI/RDzXS32M pfn+MHn6X7KCW8mXHYx7JGba+tdEwP+MQts6u2KNmAjYRJo0mn+R5pMmMB62N4ecdl14mPFYO5jninxQ70d1UZ6lOF4B8c+vtZ3Xcq+upcpk+NBQBIrzJ+aYp3zsizOnjPDL4FDLZPIxORW3ImIuxUCybrQ6WNJi3YDz7L0flgIxr3PMF+TMcnu4485wDXO1oOMFv9RimEZLdWVHNSQ0bvCkRIkndbU4ztSv34SJSjfRrGdK0r7Uf690F9DwKuf/VmQtY23lF8jXftY1uJFjGFDRalqKuBjdS2uZvxMqhROfiI+h+nw1wlwMiBjM9gMd6ilUbi3oSc3ZZRhuIic9E9tjYyyy1nENgqBPbL7Ng0cPuuwzMM7tfK+Bn1hHsISM+15O1sxp3IP95dL1DREe6H3V1sdvlbYo/L/2wzTtn/dC/SkQXcOY9GS3B9WCVAULRy3Y/afhgsvXTiayrP7zb9eXlavIYqVvaz822WeTXPHbiKzxHa8l3d8YMr+UfCh0bS8Xi33mM ZA6Ocol/CU33UGwLgWrWnW0XfhATfb0Z7F0538PwPC6qkK6BqXPvNPXM/m6Lxu5VhPTrxzyvOZEauH24N5RrsMifOOg9vw29nlchUJXbfcHqMOev1cvQgzZ+GZsIqlWFVh9gRMT2hMwMb4l0H1ufZ/rg2mM8WnKLg6BeZS5aqD9iSVluXhejKC43yaNSscRAPtTrwegpzJ4s4q4WqFsi9fwiw39R4E4fIXVaRjmtWH58JhxgvGxQRT1b4CI9xCrN9fkhI78kYjLu/AMPLkEQIXbeZmZ+oRBHMV0CqAHQJ5zFsbsxjzQ5sAY1B7779G2wXB1WSbswLpXivFCB0KPbNhP0Hi/GabdCK+hYGsyZErzYLBVtbP4NCvjUPsERGwbPj1KCqkDKsWUhqSwG/isKF75Ocf9WDi/74BQucHZyDciU6bgTKroGzpw1nKf+9dou529iPnh02JnukFVzDg37uXockHtY9/OG9WOpZODamZPWdmNbSQGhLa7zIInmMi01CWduO0O+M oIiSvHOIfwoiEOoGxr20cHwgeQeAKKKyy+GQzW5+dMB6N+6cYFeqn0Eu3LdIXlDBTSbjGxfcqVTGD70/Mo3dk/lR/bBRjyYNrQZGhqT8/H77Ep7Wmg367IuL7sQI5icIA6N2GgfweflZeWVXWIdg/cZjonOjnBrjNeXfYt4FgbPK6mgwT2uQbCj4AwyBiU4NiYsZi6jYop2ttT0MbZmONDmqh9WZkWZc8JOVX0+TOA9xNAYrdqbS5W+3FWX+0e7CYkLURmmLY07hDBarcu5dFKmxUG2b+O4AsGwtr8WcFdZfnc6BWfgIgfetHn7Tk4LB+3vkPTzIBzbky4vQZ3GyYhtTU8RnLnal2HShoYiWEnto7DcrgwIKW/KSXNRJQfB95E0yUnHwM1Auy869lM2pCD9PBjfiSDk7ONbKOO1r/QH9BvPsqijYoIGCfDnOkZWJ6Km5kq7RazPk+gaNqGsUQGeeNMtlqgvpl7dAqYmGt/gai5Wm69xx3oAPXVeOimr7/g3Bm6j0M lndtSz3Lmz5DJ/N4niy2M7LfezSt3nW6kagWk0mv0eaxlTbqwWPQPKCJgOr0gVnm7A7heY5+48A4x9WOfFI+vt/7drroHnymb0A8Yn3+O1OlLyM55mR+ztup1t5y7dudRnZP4Jduk7i5ge95LS2sh+YqWn5aBbKBKzS+Ta586xMsr60CycUfk8r6Oevy2mMiPgde2PIgy7NKb2tDL/38Zdumt6H3lHK4UKfV6oM1ouE+fLT/sEGlvjshVJGBb6GL+wBs+dVtsnCkzmmg1i2U3jcCZR4pymbZXY+U+H2viO6tEm8I0NaoJ7QL9nCmQD0r4rho3/dd1+Do0Ou27JrCf1NZCj6NlVIExR8tQKjqPEMYtFU9qA0lS+MPJoc6opzEqyhAe+5AZKXU2MU/TUmq/XlSoO0yPq5ROHKX4GnPOG6+cawTuwDHiZx9zwN1EW/8rpoZC33N7WNygXzSyueycNOka6btv1m2QGHC9T4JaZILp1oG0GAs5iQtPWmIBFUTTqyjmnaWM 9uQEfnWTBc/6ay90SetnJnMfDzrMEr0Nd1vKy1OWS6ADubx3d4cd3GDmbqr0CxsbSeJSiJeM2a2R7autdq/nPtXne2TETKbDRQ6VVpfjIJleX7GXu5cbgnMYK280wYCHl6nYpen7J3ddWcIf+T5USWc7hL05KhqdLuobKpj80i6Fj+IfNIbU2Nb5N6nqqzDTgPzVhlYRYxU1sLr0udjlP5A3oiTW4u18A7zwExioBkwJUeqmC1KWZdYst10tUjFrdeIjG3ETmu9Lo2HNMjBntXXKX5qPT6HLtnTS/yCFBHBg14MbalFTwNKael2jNuz3m7nX3bMYiJaGLCAIgxWWLGUK6a4Nn2VgWrPTIKFhFQzxKzTw/rIuiBotieE+iPfvaazx7Zy43jwH8dOOvnEa0NIv05mNvPSpiVNMqNA7jGapuq4VrBTm6xI9eg0ZRdpF0pdKOL5Oa5FIH3R3gjYZam4s7dKWKuV67R3yQUHp3A1s8w/u0ZPEaJfeU2XZqN67oLE+kbKjM PukBjhrlyd/lJ797Cahk1W1e7UKl8uz5N/5AqN0berqObnmIYHA2iyQTIgD4JWLmq5H8UG+pt+I/4QpSwbCSR25IwMcbTu+mvbRom4PqyZYKEwEkJhiG5J2leDjckTfbqfqSJdeERzVr9eK/Hai+4C7SLJhoKCgaYAYZXSWf55an9P9B4UMGz0q6iSYOQOIyAiPCKg2IUpTdK7Uludu3TG7iPYKR16zWXs/MI119SwRYTO3bv2sbX1/oxJXr3Z/jHq/Z30ff3IfWY5gNXb+2q7FxCCwJhWdAcAP/AmCJhoOEK3OKxrywJ0e+wDbLBdQU/MsEkajFhjcqE8Se2ah76VM5waDE7TPgEBK5FUf0AndI9HNUMkUxQM2kREUZOWt1Jjrr7gZ5/UrI4RAemCgJ5KZ0VrbJTry9ji4C5Nxy690ZfQ8TVzaEl368vWvsNC0uBK/0BDRPpmJha2pjQpbNjRiIUYHsqJmW/h1nvTdyhPZAdP6F+nOCCjuFfkcseE2HwwPXtmE7M SIjUAe0HVyjcEioNN0nEnNdRTniJcLrFU3soGzNAhtuY7qwAiE2WdMJ9e89GyssctddHeN8QyBMLDfkQWcAk+c6t3YWG1Gleqgi/seXGL4VoEcuxgHjaky5KdAyE2wbw+z3UbzQ0m47fJzy5MbH628a3koMtS3e5iLu/OUlj5Sfjh3kgb3QLDcYFQMRrFv3Vh3YJBL3UIgGGCMEsEK9W469PRATMvZKztKAu2/JbMtGra9kwaaUWsYgStQFMuItFAYWZsupUhdPkBCMh5qu5WOOEA2Co/rCWZaAbAnbT3CpbTTxg8tFkSJPgdO5Y/nQPf6uCoHIshqWrNUFuu7mXEDb+5ik/dD4zkCWx9C5yEdKHZWrg4fDbjHRPpc6SU04aGUt42LquuVPdKsfNTuSL/qlmsTWOgbDYEBn6ea4LYlinKutMmblIFuDMUBBdw6Yh9A0ANSY9nVDAN9GmBE6GVsZ47gDZH8hTCWkWOKR5LPk6W7QLhmSVhd0IqBHuAKhh+Ig/Td+5M 9DIHTtSlHYaGZUDrf4sBjr1tNK+RMGHHQUnI1baIrXYMcJBeiNwlPQ8bguey8TsTmmztM/1dd7Dzd2r8OIgz4ryrEdYpcKYo2R4/CYC4Y7GJyFwDVbs69ly0WunRyBcdUl3EOCWGrhbBOJkQ+Exi+3NmlySUoQj34r6D09yac7I6xNbJ/b5wgpUpWzzyuBpSAuWsFKrGJYKp9g0H20oZ+0kQH0EY0giI+RGUiR3R+KLLn+kudr3d8oDryZGg1/bIehryPRlfJ7zQW/epwsNM4AsBDoO1aMpDsDoFuEysno7gLFfhUCGXmI7EU5UlQHZ4/2eTmDR/zQyIMBARs6s1G6h4cSLVOTVkrJttOIW7ul+xCt8rDrwhEAmpHAk62abEKK1t12BsHnOYG9tX2Jo+VjMwBYCJz5wxkEVl0UPz+vx/Fu3YskyStTMT/0etrtMdoX4mPiASJ9MDCw3P8KQvW8OndOIIABIQ5E08CyAtf3h5Nj1Y5fKJEBEfvsu4e2bDpjYCXeRRM SrflQUzhIg5TKYaYadFVjlfh8w0FVzm+J2zUIZ52yOAIuBjhr02z/uENB1KvsqRGUTyXmUH1fjYh3o3X2D1l1+xYCNM3SXQ9ZZBgN4dmYvTMAnU6gaBX80turKdGQbmFgBe1NwoEuCrnpJd8YdokIZLVNrngJrXS92nOrNqKH3XKmFHlfLH6zRdaWZpfVZExgFSp9338z3KwLW09M1l+HRigvgC+ou5jsIXIlqH+MfMwB0JjGDQA9YbY0ZnPMG1kcy3k0ZU8qpoCLZ3YMyEHqq0Ziarfk4ZUG7Fla4A8BcEKyPUbL3yq/GWxbDijoz6or+mC5tHQ1jqvSZ/n0FusrY1lPXrKlhlajugGtxNknFa9Cx6xHbQ7kxV9vmrDtpliwGwPDPgmBtAknqaI8sOph80kVt0Ns/msvCDaoCFrUAnqkiRiqwFgKheUe3Rw9FKmWwT99ZCJxZQPctfOsPtE+J1+bQsJsgxktuqESkiHHWDkZsALojNmYqYiAD3ZtmgKmDt2CWuWM a1i7OcOvs+zrgc78ApNNZCxYZ/REHT+Hy6ITOU8q2G/J3ILQk/Doc1ddGgY/QEgOfZ8j0+vgeeLDy6vXgPjskrNGaIaFuXybZLzbxVnav9mea/2RdljMrzWemQiTdzR8t7GR62GkOeB8WV58CwDE52xBwWZ1iOEqRqAMVt3W5PaDSHcXd1ITfBCRy9bOvKqNZuQtqoUpd0lqef8wp6Eoeic1iZmfLzLDvGqI2dJ3mheoLuFQ1jKp7KMJWpnvn0J2CYAaPbADNQrEaX8Jehx4dCdrFBgz2RK+QZJtaGJQm4a87EWZu4Mh3MhgUFiRq6oxOdlamoJaQsrNGlKUZmty7vnrwu18c6lbMzVIBTOebZjdPpvz6stT2O8Owyis1M7YXFV8NQUWK76d3pZ4aH7piwCXAWDd6wiBkaZEf2tBPZk/dlFPYOPdNxllNxVsOuUIB/ch+EB7dKFR66+bhpoTplD8U2hxYL6REHao9muyKtsU3dGcXSaoUbFbRYDfojzWKMX+i+ljM PAlh3Xiw0y9ujwgIkZDmxafof4iIQxfHa1L6QvyCuTHz26cPcZjYQ7AXEWFeMdINK3h+fy7iYGVYhWl+UauVW2qCSF3ciGs+f1vKPb6Njr3LMbOrp2UyBWztbIiTon24hyVv5dB3nFgVsMS3Cn242hBPU43zMFR5eVMB6HIXYYXJMwuzNkawpb09DS1LA8I+AeB5bVPkMSli3uspkMtgMIaxdSLQjdX0ojR9gGgoWhN91+2pqh0qdFcRS7dq4MwQsJ1iI5J9x04vlhuuYWeY8q7R0FwoFrz7UixY6lfGw23aVyIj9SG1YvYrWuxzDBgZhBJApaNv72CE9RcI8JywpH5eBORVgfPaIZoQ4KB6mZUIqKMVjVoaAg0VjU3LEpw+FsbXV15pnKK+L3tJxZKpEYgY0NP2cJyWBwaygYPbTWZ2eUi6tEcForvRhbAlB7n62tp+Exh4Bmp6V4ygb/DABmTux7y2HOCnpQG2vOEwN9gAh/793LYJWp/Oilyv5h+an86KMKoHM Vvd365ygbflEubxjJDgDKR7hEwYiA12m+3CPAXBESjGkwgMA6ta7c2cr5OINBdV+GhnRPC4xxiuKe7CGGHN/M3ic7ne4g3OQ4VG3etAwIcR0Gh6IFRKyxF5i58rOP+qqym1s/QvvrNXhEJkl7WMIOAxrae1sw9CFITAnIPjWd0GHd2t9+oA86EyK1469H3MbcynPo+MkoVKXweAXNVYP65chXftBTdUe8U6xjY4TvGiTDd5FpSwLOr+yKPTZebb/9quXA063tkX3CFbrJE7jaEkCjwH2Cg0zgND7eKSnf+9zrY094zbvbT+6dhj9awjWFfvWhwEHRtAJh7JgVmOsV1/Y+SQCHOMxfoaWo9Mo2X+QgFSkXWGsR4FFYeVSaJauv8SAYm8ouNxkFs82S9TUIu5tQmLVyNbWHgrD7dcYLUKGZ7sQ2gbdr59Q1b5qdvj5ke3SMqT6CtmNMsp0ErtKoJbCBsZXDnGjjTfoaBOwTQvjf3sn2xnC88umXQU0cU40rt314xM3M IkT6SfPTV3nz5PalmFUAiwZuZcIexqwTMMoKfXXJMe/FXd1HMEyKXTZ93S/xoFkpI5mk+j4aSUjdn6v6O9nfkr/UcesJn56BLPKlWDzkD69+QhzHz3n8THOTdI/+8K/nku7uNisxHlpgv0rZmuFnbPRv5IekrnvdJ/lALgAqL/WP9veX8Lxo9vuZsPWJ3snqIOAdVrybB85ibGlTMYPAOAFLc+3aOl2LMXqqxvEDCOfGeVQIEgPGZRH+v5Gj+W6Z93Up/5jFrGin0r2pULiPafwYBCT2cn/2gwWO+l3anjNjTV6+Wtg+iKAKsIWM9TfiirOA5L9Qze82eWerA+Zgi5OlAtm+zXGGXhQEDPIBgZQX9yr5Hq5Bi3X5uhIAwoONuKEvdre2rbm/4jDPhPYcBxoPaTHuP0jFI1XZFwDUJJ6blygB7y6qF2xQh2hTCL7DeZIJflf3ac9Noj6zGdsYrZ/XrLXmfgV8nv+gaQmxrdDSyWYZmAkunH9XVe5KYKtqcmjzxAfNM WpzNGmLV1jj99K/zPkrpbSasjXNfbr1is7g6pzx5cl/phq05k/aD9b+r7NsUWjyg5F+3HZ67e7kdvfrZPNJDRU5u8W+QJkqyhWaJ9nx2k3XbXatZZ6d+3sMi3sC7e0Z1Q3KVouMvPPRrX6e4nvTpLoSvxO/jHiER99r7Vx9W/mbtcIkeX8/W5SNu4Wfid+n5GVdzqTvhPkntzn8Y0MYzT/+tY42mxS1anYJ7iDpiePyAS+Ktbd0KnyJcCoiI8eDBznTWaVwtZ6rs46sznR/7NO1HPI8i69a1xUq6HZnPrn5W/p30unhYCedbw+hrC9ob/Vpeay/axMn+8wnwGLl46AYOjfM6C7f3uTtBrtSwHAZqudg0HyeYLps+pxMwe7fqCazk28v+UzXR1B30/7/u9Hq8Pi++zbmkVAO736M5OhFZCkEgMUEd/R/qrTj627UfrbGRkFRJ/H6nqooSCbG2ppMnPEdOXjXGwtUdC9/ZlcZH9sF3rbeVwb95F2eE93m0b0Ed1HLXM R+nR1RNwSuGwJaE6JLkdQorbuFh6V75/qQdnN5ZbnqDAHPVvkd3c9qgaX7ylBwr386q2x696e1ZDrP8Q+lhUiKK5anOIpnwuYuM1LGj4WJiu36Phk9If2O+OtkCvubjawy+bEJoj3txtSf0Vydm6xWO7PksepDzzkBa7uy+zOxriB4zuIF2tkZo4DQ8h2Jf9XXNVvyAY998I+uXgg8mkUG3N05kJ7M7ApaY/i7ZbcqVHPW9ZIh/nWwdiBzvjzqfrC8ZZSM5D/7K8SJ5nbtmTzgBJ342j9+fXwc6rEEvVPmrYHX52ZO+vNf8FuVfRPinz8yt899sdqIQoDi/11b3B/KfrLL7rpnA0h/3TDeBj119gzkV7pfPyPsejVtT2q8nj0uQquJzXVuf6F7qABPU9P+ObXmy9hf5mb94D62jZie6L49etyu5752yt+l/I+aKP4WLteH9tcx2bevZPyuetU0obp96nVOrmx9xpjteEaP7UzS3ulez1lx34dSdwcO5v48O4ZnbpM rPUv05zZ1msup3WqdtrwjXCzws7cZVqDV/9jnqd2vFae7PogkUDg/rBdVrJseAxUeUn33GvSbs/I50s32fzfe30d3u5dvFttI/PupxH/c93UfKj+mQVxvvvFbZi0r5rVHHBDp6xvyY2X1WGEd3iB3q6AWy3VgbMATZrtyeCd8F668hvM0ZnpHuOenPYLmDSu+fXZCajftNKv2pb1dSPyP8qH09I7vRjCujt8yx67znV5laLfY8W6MQvLrhVnOmWK12iQVC8IztEYeR97v1nn+e6p3N31P9vOTvZvqzy/284NeH0mLu+n2dzc9SHa27GTjT3MTBSfWzaIzNpXOm9pltzKg+XmUdU1rpoa10y/K7BXGmuu37Z5Vi26fr+h1HMqf7MwZ/T3XFyf1w5jX75LpCP6L3/POM4uO8tR40qs+UMLtL3Dp9zkdU77UT6dEdWqJkX+lnu9FSfeSNn3fbfdvnTOW5ydaRfDff+HSlp+PjjkuNa0gzPOZb3CF13ovZ+TOqXzn5XJM GbU31cWef5sbJZlOwGLnrTqT7KhfNKl9x8Tr3nFPkM3e9pfvXU3N1tzjueUX3Gla+U/txIr5Q3MubE4e/G+Yzqo2QcP+N9+lrvGOj8HRgb58ga7H0dfTTnz8MZH1F+jmCL4s/e1VIe7Tt38ZnHP0PB58dxds63a2vx1jO5fNbfzs8d8aDrdaer7uTbGX5oz6gudJyp/pE2fO3Xr1n/v/Yu3szffd9nY/gRn2nPp/uLj1T8DNV7mPxMYXsfBREskuxxcPOR6vMA6u81Zz9q5q2N+Ps+eYrV23eqjVd9fHd7vv3rGS33a2YeNJz36fecuR/xuV81f8jnA6r//flTfv6m+l/x8zfV/4qfv6n+V/z8TfW/4uff//3xy9s//vs//vNfX/7rP//jf/zyL//2b/80mubfn9/lc9D677X/F/z8TfW/4if8TfW/4Odvqv8VP5+h+jkh8Yc89wfd59ueGFpGD96pjYrBmq99Gw3/U35uqR7Mbx/R/Q4N/a+jlfAxgn4sJhDlyaM 0Up78tb324g9jbw+WH2x9+efijr0dXj/Njba4PveHjT23kPIFBeMwgcCaQ/jIHxx87upXE96kQ3B/rPD/8/gjLIxzdOxjA0cVYf9ZHSI+wPUJ+hP0Rl0d0j3hwhYNdxEdcHzE94lZwEfOfmk3cC4MzBp7hof/1Y/z8tp+ydlNnAXF/rMtjPZBxSIDwWONjXR9reqzbYz0Iu5df0vJIx0WHYAiPFB/pIPfBBY6/H9xgf2xLAcvmHpsvf9nCY4uP7fjLIUZQ/vxnBMdzWMzJfCb12P79gWEjyMcq3o6fg8NXNOTj58BIeOT4yOsjp8INDgTkg6K5gsBVHBzNvfxlXx67q388fvflj3t47LEeOuRGKhce6NmLYrHngpa9wK+kqB89WI6eLGGySc7PLWg+yzo+T/Fv0Rt+de8fKr6q0PCFVqWGr7yKqrynqBSC5QIRt5RNFYs24QonOMjv6ubTpUSwcgt3iJoDGrmclgp43KFmrKUMvOwAsde/HLdPZdPq48m+QsQdikM e5aKtn70u9y66d+g+YHYB0vlx5PKCIM1/erJaLmrLVQnUUQnhqtVptPxmifjiC3GNE0Y/WL3VPIafsNlt2BSmbDh5HQ1E3S8lo2THgIFwhYijvdCg7xxznHXpGzhU7exUo7tA6DlwcfzvwUrHgS6P9VGgV/dXXXwWjWL6xMqPy21pYkYuVC5WbxCq7MrGU67kuln+PLhzi0B0c0B0C0R0S0a1FNz5uvSa2y9+xvzXuEE3SzU/x+WZQ4ei8ku23ZUPe6CuHNuEOncStO4hwqCXu4BCFPodkKmpLMWGOnhR+crCdQw05aHawo73KrZTAmoJABC5V8ZMqyvBTcVS+BXqxQquIvFwQSVAVmLnjflvArweramIQlx9dTFtlZQV95Vurso5/i9K0UlhSZNbHFh2q3PU4K+FFDsc4t41m+R9tN3z28+0i73vO+kF9regicypzf2gl7uA5hTcdjKDQrUIstm8uYkYy7iA+2EneyJzIucq3MqFK3YIHsK9V5/HSA0DlnPKHgpM UDrm5bwbu2RGAtFWNbhRqQU8Xn2kVslZhLQ2VVuSvHC2B6vrK70rW44cpDPJZvAry3HSL06Fq15H4WpH2Wiz0/4/4vP+ZT7oe3NBQFKS9VUSJ6ikA59OxDLFV8ZY9/D9mzVfvbwik25iTopGSAZ8GVQ7usylHwv1yhANU8yVwrWBNwju+hXRFtqTK8CslyG97yuIIcr17k7bX1W4yFHSqdq/IW8PNgnWW4B9DKIsoVbD+LXfiMqc1/73+7Z3I/vJcPePZcoXURiqX6dysoK4ym0KVIp0KJgr+jDeFITlWolFbpWwSOO5gIUEXJCQeAoJXtIXzXrpqlyibLPcndCny8hZeBTkVbIoszTJQXiBHmCF2tMr1qgdZfc2w3yVHDgE54HCls8DBC3f7zOC4/8i7MW/rL573S88/nss+h3xe2tm8QIYfQLBRPxd6viozAdsiYQ+kHxxrMQ7Gn9gNOxnNy7twL4rXASspczl15gvZVqV7BtjYToMONoEvJgo64qzArEKEtUJM wThSGGqtvhfIdTdO8DaE39A/SKRwyAPAbrl+X4/ixmwefwdharZ6HZW+Exw+Y9lvzTfZN0TolKHP8uoappVYuqkFjJ38r3gBpwVtyVXgafkYeNeWXibe9WgH6MeVkR6pdYYOmXlX4s6E4j6sitOuYq1E5fC8W6Qvb+taeWeMuSKgCPQ4Jnv7eBnuF8fimdrIvyXCf0RyPs21DnLgiz2Pro8zl+V6ZqfzozrIcqs+mOOTw40poG74NA4m1jbXpaNkCjlCxMC6wrWFk7cEKwt4q3WDHHX9dND6BNWpFXZN9GkUh8VMgEWaj4OQGvI9Dqb6fvRk9KZX1JZ9ubFe7oXfkePT06FuVT8Z8mwz8f7ObW5zO4XVnj+IEXwPO8Drzz2a0AK8LV6Q6NxZV/q8dcxBfCVpoFlfwFCq7pWHRdWPRVpU8oSwDNCFT9ugXqhd0fcrQJwiLaj9skWqBEIMwJX9wexJ++5FXka1cgnhjZ+etPcKQuWIxbXijtsASry/foRgFliVkfOoM n3ibNtPVW/rc/qR6Hx836QmSD2xR9+owyOePTD7JTzq5e9zFqZvTqLx7oubtyiUh8Hw0GYcEx28PJw2G83ViOsTBcbYAMFGdAqDojzeHBkic3G6Dx0sGrxQ4sa9kbijUtHwb08OVgBpA8RSCn/8iuwGqR2YW0Q6sNK6J1+5BDs2BRzDIFPPWYybMUls8c+p4HfOr9AKyhjOejHGPpt086/BaHfcfdJW/fq3LCXsBa+WKYqAJL4Yvo4uWEvUUsfF8SYAMrdyTpNcADvfibHocTZn4pXXOkPVDU/XpPVxjQOYsdWmSRbzfmEzbqWojGJDewGvbBzUgtOiHVrznTwPfnhSQWXZa5iye4p/5JVxlQmuP+UQ6Wv2Ux0atxjzn0uyIy/Zdn1b4vO+3v6EZ2VWxpYxr6iMZWNl0byoLWkVB0ztHqYKD3qQEHfZfFV52w4NUpkM46LqF6DUjjaj5BLlbKpmStc0Y5uOidrpsj4TNYN33QT8OSl1p42lstTgR7W+j0L+Q/wWqM 2bNZYB+vW4w8rJXDWxElR2yjXrBcGFLoUmq0Xwh1rbPwlufz16R9Q6LfeG2I7W8Us5VWdux7e000G0Q/L7VPXCZHTTvSF5FqZ1g6YK1iqEd27Z+GqT/1nxFeoW1h2O5wU6iWjNF1eAvEG+P1B6QDGazl+Z4CegegJ0DtKZVqDoi/05EHh01x8d98ey8sdzfJUBe0doyvhqnoOhCdhyZyFbJ0ttl9vtJtPhDORy9I+A8nOz6XsWWIdxA7FmQ8zVALjIr9Xgd1v4dfwuuLQYL1Wa5q4zwLmD9JQWdAtKZmmuR2M5AX60pop/aNRd0wnNYsEtmDNRJpp3vmZW1fUjQz93vXXAtAywqaPoHsmf0hzqN5bJOia2CITjIb7E5Yv9H3djLJyYRmMeBtikVQF2PPGbQc+4bnoz0yh+nA78eTj/imfw0yytuJuRf5ITF/SKY0gVLu1NRCq/7zXIiNyEZqztNfUgGj5tkiFm3tLu4+rwZAgIakZROEqm3yr1onn702jEUaUpXtM VQ9W1foqKpBqo2aw5eQL6P3oWTM7/x6w959ulH2sgejEvM55rw6nP5QlW2Kka0tnEEVaqGcoK6v/LwmLpKLf5NB0U3yvF7OkFmVLv/2UE+OLPiE3SvnUcLxXY+NY9CfJOL9EnUtHSfV2oI+8LIUI1oCvCeyoP1POz4lTEbOirEba0noqVrNH5tnLP4Rnloe7i9O9aIddx6KQ/0uYK9BtXd6BJxsSOf30vwypfV9C28W240o7RkhroYty8Goa9BlLWhPe4ngWrR3ylQKeUND6p8ajPK+Wq+QEFNTVlPRtSIwR+nfn+E9e8vzDCaTFOpR5jv1kCR+mbQrrkr/wrxzXZc8beklQGDzB8Q9wd443rWjlsaJDG/u5aBUUlrYOUJ88LNvdFctoZ3/q1lLDVkS0eJJ2/fFrsrmojWovItmRNWa8lA8QrhD94WhvNtVspUGdnu30ZOFRzJn2Xuyvori6Dguoi+2KEtKIskcRvhLbKcYR6bx2li4RsNpsJ7r++8GmDze7DyX8M /EaS/KtxE3C2sOOp4VFeMAaUDP/QYZmbjNlKw33BvIC0/yJVOj3LuE42vMvWrgOfeESaoqPYHSKuhnoDa/si+qg9FqCldGfkzxwtx9QylT2Gq+TIk0x6VeV9SWUAL8xW/sem6AvqXKwSvJCgnGJwUdOsw8DDcFfSh1EkXbnoB/D0T+cayct9fJCUu5KlZ/ozjKmo3JlMe/+3zVY066jCAfu1JkvtYW83plllTz+LvC/tvvqPrXsBj3yB0fn33XEfYX+HdmU5dA0WYar4f1H5Z0fAsJc8Xc1lThFBV063p4y35HMY7RIrwiKhXyxRXeMY4Cv/qbLwVc+Am1GZYd32hPCyf8FxWb8D9DvyxZfq/w94zF2JiLHIfdi1KtO8L8DPXr39AakU/27ytX8FdYywq1BDqr8DlaLq+gzbBwRuV+ZsTu/S0x4Xfh+t/P80MzOzobf2KHDseNbWr1wIteeLKIfGaSaGr6TflbXQPlndQO3vE9tdx9qOpIwJEKH71dAPRUF2jWtLM MoYLcfZ751MZQCxmMxhePScDwhuPL4jd+jO64sjuOcktjly0XHub7cd+W/+r18j2v9cV0ZRqmrLZFSR6lW/w1tQbTFYIKT+oZSK2OCPTJqn2g+rGSZrAZpTEeXitwSD+/yuDKi5nKUqTYjGphYi2CeFsRanhCslJjDJtV8r+bH+zGBmR+4HIxGX3XE7fF0KUzZfT5FKPeL4XrvLFhHqhR8FRyXkuxSk13CyIk1lVT6i3ZfYFTc3bG6ukN5Wl7aIijX7/gW4MeFpQ7HaGP595ihWE47nhETMH6MOxzjwfe4bi2Mv5T4lRKI4/gaVWQ3fsJ63OSQFOGw/0LBxDGIkI6Lj0WLr+f3uMnBokMqteZplApPFkNbFN3DU5B+FRIshuBvOEe/ebmMyuiOaQsp91BIyN3wqoklpIxkRnNNGIqZrwyMyaHRDrYGxACpYjlXh/6unTh+QAhoskK+N8SEiELvsrS/k0tnkLH7qAwZHfIJt5n4kbv1sLd1VP9W+HTdtuD4t5bzxOM 5R8fCfc21IOHBFYCUstfQvFIXmkDWh/O2wekOpxSgC5eDQdSUU/BRWegD8aNof4B7f0yGjpRffTSgPz0tFfCje2XIO3TRGnT9umT2WUD56kqP5rvwevaoFRNflEUrGgnGETpeK7GWzRrq5cXCVsB9TsrsxOlUE2061qnrlXP8+WRZD1otllLc6szUszoIE0QF9bQ7Tj1og3xOB7fV+5wVy5yM4LRO7XC76UrrOIee7+TQkjveuWp1IV/WQ/cBOofvaPO2F++9QhurBxO8Bir1sAVL2AFmOr2tLIh5giYeBGZcoYRDr3iJFWVrjALqyLBbfvt0rWU/OuTL58o3LWpdE/ZZlwqUSD6UwlvTmsuNIMZBK/ll/gMdGJLUHFfzb/lB1L/6fKbTcZDGVWx+XLvtlwVwjCVg/VXHZNiRpyxlbGrHUBTuFFifg39wY5v1wwcQOCOuNmnDMmUFuAqFG7BSAFivXpkH8VsvmfGS2S+opJYES8aDHLn+cZRfGmTHVMfeTG9Va8mM bmUzbnnEXzSdZECI+S+RhLpOxAfzUZQl0l8RAxsRgnazlc2lsVHvEwH2IRS2VpcFXUJTICrWD9DLa2Bsqa8OXrsQ5qxnWq37Im6r8HRvrXt2/Zj6FecvTWJ9yi3u7oWTFSePvK6us/RYhlmOcBFTA9787aGR4yrhg5VSG8/8ZjImPZXYg6XJF+GmKL3FnGdSyPGCRHDFHknfIm7pmoig0ZLBNizrxZRhV5smzOGs6wjNKHGUQfLJwPFw9yeMcj9rUWQ4bkyVl1Sd+92nA2trNyoa1cXNEIjBWXxsN6lL6m9dPkyp2Ka6a7ZFS4WikWDysxHiCLofx+IDPQ3C7APagZi2I2KFjxtCo+/EKixOiwWoL2MTseWsKFsWx8VH7KllZ7PVJymrSwygopJlExoIpRwnXjcf5BFawhriOKoiKW6rEiniBn52b6uJyoglVdc4cRFM3X12zRUmJXiFyqtMv+W2UDrrIDV7HRdtf53XpaBsHww6m9edWv29emMMZK/alUsWbLzGM lEGVZj3D96qTyrsG1SpieRtIyhHQpl6dN0nZxmcc2nY7mto8HQszN5kT5m1SjtaMK0ElIDircmVuCXjQgObBV+epweD+M7rqFibLS42/KoSN0oBLbJ1xthEbpAqTiP/z9p37oeucoze0P5YTBguP8b264qCYTtZNa7v2fGnU6nj24KnUqlKkWdgv0dOm+Nim9YdrXLilTqIKCLGyIc2KFOalWUItAIPIkvgKv4E54RWT1ao2tag5KX4bvORS+14P67vMc45RoettDpurFbGlrp8/xSC5Lf83qx++AntOvwmPszIeOOSmobhJIfyzXoYWHb4cG/RzvOS/iETg2FEidTxyd85pOfEfIjaKgsJv7/4ehfGHrf/0Vy3u2ho6d8oedjL3IkRW+2fKNg27M+fbSn1xy+hOi/AUb37QVuxR3pFDhlR7XVFeMGmhliyB2ukiY2iBVQ3sw+uEkpZkgSBVuEjvuOOJod94Lie4AgFV4q6aBxg+raKah1OIYVUnypEzW4P+5z/QM hGSQiiQTO743YoBvoWoFiewbII73/0nPCIxK+vdHx8GMTD8IGPdb/NkXUAO7yOd4a/3feB3zsCkck2t4ijiaUtyPnFJL1NTqi7PLNJfmyu38JPcOneVPBswfnE0X8tyXwh6K96Y0SQBzMbsJ/YjpFN3Bm2iCdY9icjYbtfX9HL00OLDAckZ/lV9/0rs4IMzT5ctQGhyOM+0n1kKBPNUOX04CFbI4B7S1+uF6WR7qc4aTfg14yLRsXgU8GjAoUQwc3Ai1330e/jfgMJ4oSJByBV0ZLL4xTsikn2APGSJ5XRgpnCSwJPNRFQFYgqaSHKrn+lzwxVn9luOnEH9TDpnfFcJn7fFR8U2wegRXhlQq2my0wR3jp+v++bj7fZMajUnGbe4OXxbSiIFqUuCL3aeMZ+Pbxeey+1vdQfaR+2TF/9lf8blP71iAVTRTwGo5AhyOHNROzUuDv84t95LHT9bCmVsn8FsU4Zy8EKgfCFEERf+52deDy6IgLHj3v53XCoxDG+Xy03s0M djdSEytMAKGpI9g7cFDxBLmqobF6+TQQurcz+VPDX4cBX+Ig3OKdRgKd2xOA9cN0RJkO9cyOqQgk088PiKLQBS0QYtwov5BL0LAKueAheDKyJ+S06UNH2+D1y9U9Lm6Zm/Xu/9p96hYsW5g3Tkeekn8HWv/XoKW7wfuA7AFHr1UNmyr2b63TFK8i894Gr7Cp/cpVz3DMBehFjfet9LSR/5idgH+ordN2P1v2YZeK//YWyB8xL8sHfmzp2HR1+MoVkqfsLq63OHcDAWRl+s6b5OzJjg2na9M7yF4Hj4AVVR8FRgKwoUjbEo7sVT2koyW5Q+IWZL1oMa8EbGwYVfAaozC1RY+Fg7nc4cMQJkn5cw4xiDpjJElaGqDFll9OIhD3bJisly7TgT1uQgArd8aTuo2wTcjYW92+BVajW7US2OuVrrtGkz6/ZPOzaEJjmAiQfQBsevVqFMzl9elgvEf/QVxvMf4ECr9UghxWacrawUN01Shz2GeARar+ao587+zkO9cBbDk8M 0T0x2YG/8f4PY3vziasQi3r0hqJrujKxjqX88a2Ct4irj7SMPEKHYGZ28A7Vtff9+nLnvoBSYEWhWLBXYHiwcLpFlmwVaiI80Tc1y4sGiAWivv4yhmfwwrrepYpuoJN8RcFfx89JMAfvD/8Nb8/q2b3uw6GIPxCPDjS+9wZGgnQ0vb24i+pMQHRcYSEx2VyQR91HodG11ht3QEwiWTdaG1HN2Up0zdJbIkfsr8obsAvzeZNyiDXv2R0Au2yNdCjKw+QLh977HT4isyO8MRgvunLXtahMeq8yNH/G1wMHLQv+D3X6G3eHcbm9mA94zBnrHYo6NwHeUBtrd/+UyZRt9h1s2PX+rm4fvx82+UFBjDei0M1i7R43vlIL8OTw5ouZc08skpeJFFBSHM+XDz1hfGajd8ASjwDXsTwBA0AWQIXfygbUuK0KAliOfDdf68n/c2FhWZAqxTi9IIRIAX2YMISj9O/sc7GE3v6FA20g0wvVumc+TvAn8nP05V6hH2j3X3c2MOPaM kQwe/EpkoAwgIOTDwYSnGgHDBkDWjtzALivu3AkTaf0f3MVzZ+ZvoiWD++6Gn9+tsxem7GX3FfvP0VQz4gOI3LWqteMppxXUzX/y2S9d9QmGexOZuyhL/kloH/h9n6RGQNlJLffYIH28g3vS1r+PGd+Pm0+BvA8xjBjV+711G7g6AGpv1R76PdB+ZmdPspkeFZYmJ+70ZXg0Rn1VJ3a4YesyRLBnD50RLHMSAr0tDTAK0SNK+lymwJhFyhrZ/w6E5uR0Pr8r3YG5KZTOBfTJK0LDjiJ/OScEfxrrOg2TJkFqrCxiJbiO2CwKsaFITmyEZrh5y9Q07SOufmcsaWzEA0eh6EIeweOkezoNjoZ/e5SBjumV2EE9ru09VO7H2gBIPtfgp+sKXmfOInbsPP6ZB62uzLmaz9uwMi2lnf9p9cnQg9h9nWEPFI60XYhljp0yP9N0tjATHvsPsFiME24QSzc/eJxDcit/jX338IjdvPu5X5Fx/dd0Qv52/tEHV3X6bzMN47rZM lJILOd6EZDU8SNhRMqJtCVQAv/Abx5TUxEI+UnEpEIIXkoE1v5q1FALTEnTyyhlxQYYyMG/t7suF+DlKPTSmf4XcmahmQ+doYKcjpc3b6YGci0VUisoKsDzPX7ubD0K24f4UDH6UFxaGSNGrqdoGxpz9eaUkakYxzXPES/bax18ABvJXfj7q6j8DmKUaNOUqAa5/tUFuRwKtjxireBuw6iFAuFi8gMJH62++traOBGmYUEKNx2MrG8lXtC6De/Rmyu3TbnM9w/LpcalssVHzN2w/dVItjYhmMzB4/FGU1q9HE/bNWW9vzvxnHJ+213zJM16Dga9RuVT+v9yU//csS/sPiA829cgOiFPL0Vewy3V7eK1uXX0LnHhVBZcMKShy7FveM3SNADsvBe0W3foSd+0rC0rpqXofQQhnrlum8wnLCSnMqA3qX777CQ0BoAVu/z17Ag0TeCA7i5T3eDSUGz3u29XehcQhXjttrXAdZjpVrvdb8cDtQJs67ipS/kitBrwjkgGNM TQ7wPdWRAeTIShckrW+HebVx0n6bmAX6g0PrkgixEi+nAhdh2HoFdeMPV8kWxsMCuw3MC8QOJM6Ce/yAshhQcmcAv9xrZXxtBvmkXfbyNoynONPZ7rCt7uq0o1FpxiXe63zOEDedHtK1ZxeLmL7Z8A3LOheVYSzp94mxXoil7GUDeeH+jreAMssmJceurltdf1wdwj/fL443cRvdFo94Kr4+Gh4+6icigEhJHXu3+gLRBteaeOQet1wePjZJPCYAp3BDFYdTPo3173zyvjnkPHCcLG/WRnDsdpB5SxYT+aHRgrACWa+3G3Hb7QBX7b06tgUtx934JRLff9WLI7hUHoNRkWL7zDIhuOMPS67erF0BM/7+ep4p9cVWKOQ++YMK16RnEdLxrFQvpliSjcMTmvNQ5suG44XeC++PPer3Rb5AtZUjTi29IEhQRn/VUQ8G+GHT1pR8wzfnvGcV8xSXwON1Avh7QvsziT7XG1fRu5F+wMYjE2LNfTdH0A7gW5ySOZt0X/E3M MnWn7BbeOPrPRn9EBfVYlfWPLT1PWVSYmRQBTUilB7egRbgD2mLwMfR5DTcUGejxEKvcYL3hQkGzEuD1fxDBqRODjSyBap1hfGJt4/0fmLDlr+PMNR7KjhwGMuHUTmIcRxFiMej+v3usVyBhBuU3shPQTlXrwhqJEAL0j0HPIsr47jfgysK/6GeVxI7MA8w0rlrPylYbbKjoLIiC4CSB7wUY2farxbYfZ/YB7X2UaAH3hTjC/v9zwk4X7hNMNKD4wpvD16tN8jMeWJUFvzWx3vybV3N/Q3/PlSCP2/W8QSqxFxiTg3/88czHquP3qKZ9i4Vwd2v7P9rL56/znTNZvH6cZNzLGAvtmg8kEY/j52GsDfaOvrEU9zGdPUY7urRd8dibkY/nmSJuLWMRg4RwgBGQZSV/WYOLwfAlnN29mDylsnw+RedZDzP1A9vyhgzkAJBk9rtvMuw+wVRmLet6X0OLKhMvPoSSjV7YU/cT/Yu57w+/2St33ldTiR98rV75eQiBl1CbM cN7gSF8m2ds0uQqslqXAQIu/UTCLiNR88Y25kJ7I6hZFlQpGt78T+2F7ODD0iu6yX810s0PQ2cA8hmIDKFHBJTs1V45Fu697fchceYFHlyV54VvZkJ+Kj0TRsVtu643XtY6L2aE5ePhMyvy3pZld/M44eV2asWm5TRD76DEcS83ibxnFnQZUofBhFoNQHeCMovvdO4X3zlRp9+5FcO5pEKi/yW6Tw8Nr+oWOQn2353V9Tvm4yqHqtNaGPut6HqyN6hB/JEgvNesxwNeTB5mg5R9Y1KBjR0rLdLyCGqbg9TB56u8+dEK5SgcThakQUqdp3IzrSFfE78pFeaDZX385VTB9zmIQtH4CBaPFn6Q8ooqWMNOO3s8z8IPD7KQQmtJvi4iDkxFjcXs5myn7ShYxk8jGbiv4dRfCKTbXYGTqSUMekNKVtKMVnMhC0Ff6vINVsWNBopB57lY7aKYDSeFmo4GW0+TwTo2cOaqGsJmvO7ZWE/QfnFiakfliV2WIfXjw0ID7O5a0M n6tS90pk90Gtw34mbIeJZxfmwOXyb+CdWtbTOEzjFLXcLniqG1f3+9LJKgb4Yxnxa/66/vNqRrYDNRxENmkHi6V80NjYqfYkHDDey31emYhkIlvMzkBBd27TJyBikFebg/0qyHoAq94FPGdR4QIcPknfl7EYxbFYRhbuA+04hecjKh+ZfxuE6jyXIDtwlxc1jcB21n0Kz3ZhEcpQIP4dMw2TFeA/YbOMRHhvHER8VU6kvI912gX4pVaXjL8tqf2PS8LC0o0lgQbICa2v1uL7lj3r+ALrjecUCpM5vowCOvGXwddsn5fnrtBUjfeyfWYNSPvDB7pX09xHV39v1+v+L0I/vxaWwfZbwZXJafAJYvmAqihsD/ZkO/MTq72/4w/q/jKWW7e7TROkYDGn1eN5z+wVe+bG6yvlFGsH5tzAHUDlCvffhQRVYeASmsXTh/WOOwPZQI6SzHo4rYyULmciRqYJaQRsFDkPa5zReRi7QMg8TEA+glioFgPA12ALwcEIvlD4jcH7M ej4QCIxU/sBoALhEoG5sR3BZzWyI2Rz2QPDHnj5HbT1WVKlQ1OjlJzcfvtZ4477ht0Zyu97XHIBwBqx+GH3N/18/5SmE2yTC8nOh3uD08X91pYZTBxL6gDo8f7LDsObE0FOnSYdw/9obwbz+AgxSj0yRRwcE6gbXnUx/f/zL07wNxwPNeJFzniIj4fxzNX61rM5bPAF/3t2fVjz779O/8DVGc3RPkA6tO3/Xcg+v2wx5t/in99+haecorp7WN/XEwc/FIFVhwqqE5fJ6beUSLpEGA+WaokI4bOKvQ673PCYSX3V4Gp96lz5rgHYHBGBxQsYS/goOI+cC8HhspC9tBTquFwHBeFnL0YdpGORXLJUrnAbPx9wIUtag2Hm4syysCpByEb5cez8D2rxUJtVfiUuoDRHBnvrlsAjGcc3DEGvH648ghx+Mr3p4b3z5/4u/wIGeYqBxpGd1hC2JJLNLBQBqNyHH6i46lztx8nFth9Vop4dQNufVJoWoIHNAFqHYCxG/DpIfM kBa0qL+qw0fgFx9hLEBTze1vgZzD1aaX/jiz9Buttf7xqOlLfZz0cw/jfAOi98Pd3u35alKxbp68H+vTJgO3A3P/mRqNu2KT/bIUnnghrh2/KtdmN8PL4tbr++Guxxo5wvrOK5kEsaBV9BJUEHmaNh9ZSBjDhNAn7ez1ElVgILUeUx8ifkv++fOrLlXasgDHMMCFNDvRDKMJWAs8zxKegylj1l+7DAK54bz3vR7tGuNTxPJyNWcK3iFUF1GhYL4XkSeCzdcz8RChr4PFjdJc9jYEZ9yxOh2BMGENyU2hpNb2xg1i+S3LTv2XJPMsZC8f1mbNz5QDc7tHlR6cbt9/c3kD6DcYfM8IVFVPm9ALEsHbfll6q8VV9o3b7rqEjkSIs5ith94Lc9S23Bmyt76LtXO/8HM/QvuJbFrDDIBgAymP8VsDk6wyW8L+Q5Wt6N7O/GdKOZhxrmH+844nLGAiGXPGslwba+BGzGnkCvqx977ZBjljX5nfvuHe3zdJNx5ppiWXANMLM jwQpfDvcbuOGtA7oSUmvvHfRdgDaPJTwsiUVfI6//oLWAYv1/6icDYzKTYBFn4BZ5rl//J9Es2txkv2wUZeJqIIpGZuW8Vh31AvR6POnE90fjDF4AgWY+0cc72xn3udw9wDhn6gd0G4oA8Lvt5vxqk9A7oGB/QPjuASUbWXT46onL66hV/PPmu7ysFF7yJv164QFYOXjDYHNBMOxIvEk2sm0AHqr6osTfY2+8xcf+slmIDALiHAX1+wcG/3pyr2Es+ARx85JggmYp+u+2JSeYz/Jzl+8VyeyoSrVaSV1M8iy7OLfgDvWaRt2h4JoMDeD+9gN+Of0W1+jTPvuq4Jbhf2/faS8gZvnzjR33U92vs5cU9rbb85EhfAFXhXkuZD3CmLZom7xtvICAwu3gPLEzO4Tlp7O5fsEDNAt9XeJOypzuY8YtumHURCy55HZ7lkMcJwCuNWybIETMz82RAF/DBCWJhNx2ZlL+kfhSIcoIBDFBBFhUtlGNieQlc3CcLDj7wfD84W+M Ipk6SE6Bk+8v0HD6mZFscJyHzFRtLFfeWiY43j/qXrl0MpLdCmThMduf+I98W78Ynhu4FQf3Ak4MGeLghkfBlRd6yc7UAHyozvljQK+Y4Y607OZi+bwR70cPIC3ROIXptwq2uPX3tA/9kJQx/HliAOCdhwvDo2HohcNZlnn9jTfY42eKWlzHW+z/XDn28fb+kvX3+z3kEqIXzcWMpp609PmsOzDhfM6HNn3kqtWa4XIXytwAp/A9Rhfu+PWV91H94BDZbHyXtciihBk0crdFXeNiPNw9ZsLlYsW0gqQeP22GyzoZkFFPai4x7lEIPPkG6FFke3krkL0SDiXmquBuf9Im8XnioBnMW/B5L15k42pyW8G2lv7Gjusyqr2FV4ZvGnn8vCDoomZAt88fmKrjA6xioDdjFt+Sj0AU6qdoByNGiDoXVwFNVMYIzvX3jnixQJZYUbDejTaE4QFyngsFwbMsbRsMbb3DA7aOfyeGZDnpkRF+8wr9oXfnDUFXh9YPfRahYM8GM 8poDjBdOti3qSc/wt8o9UNM1Gf4fgvwzCeIsC/eNFP1P5igJ9dRFuKgaoN7ZpfyiwRtLGz5KPnZKGtMsqFeJ2Y5QUd6NTnPe611f0KgEGYABEHskEH0ljW7MzhBQfo8EetagnT/fD0EIU+JLGGz4lwtR3LMIeDOH79IRtRV1YXlTfWVg5Ftq0Lu+tCKK599YfC/gHFaH+rZYOxKzGWRYPw7DAp8eUyM43c+4FsOLLomb5JUgjMN46YmXBs/BPOBESu8VD4Cfe76OylvuiXN94TZoHPhvMPYtjBV0Jlyiwjfk4Q2goYDHWqhcLag+8H5fmLb8pedgh3GNO/dshPeD8x+Px98pSWrz396LU8+cY3qav6qMVEW7dhJ8hmXd//457wG5jPRax/Itl98ncg/Mby/p4+C7Z1oX3zO55hd8Dyq3A2ArtFSQr/0mhtR7DIDyc8qlwwYZU8CK72hSNbYxAXhtFozKToMLf74q2ViSyzy1iJ3BPQpXVcXDiD4bJMoZrJCjdyMoM ddXPRkQfjrIJsJXS69zIMIdlGrLjmTox+GUnOp5VeXMdtO4S5o26GuiUq9lfoHURwY0pGyzw5uquQZeWI1ylzWLDPYFAPdUojug8E/h1O1Sdo/VPCvDDQ6vQPsgR1oRy396JXcfJlhJbSij+ymdyWxAmrrFX7B7hvTHVsIZQf3BEhd5AA7W1Xzetj/123r75PK0N8Uxxex/5eqaVjoD+tsQPtH2eYvkyy+4u5JTyP9Efe+EllPJ/9plj/i5/O56cXnMeMbdWk/tYPs8V7kLcvslth88cg4uxs9gatfINbtK8MsNZrXDkjA44KkYxKLi1nzzhUKpICsDtEcrG7GzPRqR5aVNnizw5n3VhMN9SeXdpZ3kXsTnTHr/bgfVpdUqus/FlMkaurhPoa9BEGNTm9UgGf/eOK+Q0NdLG3dTeukTldbOgrs4Q7a4bw+FRbyL/9AukB39/3aOGv0vTkXDOmxBPPNU26bJ8VWy3bqF/B4w/7N8GJYCuMDxfGICZG+E6vcJzb/WIM Z0bLH4vN3tscfBtnxnmcri67dmihljs1tkMMUA9FETfoakK7Z1+RLZrr9RHBxrpKVXrjvsG+sVXnY4VMjye2fabbTXvWfkG7eu/oDpeHnJm0ra5Gjodg9qnfzvibDVe7P63oolpAllNGjNVVNKnUa5MNQD3Rekx/vinLba/4zrtN3p4EWlJaZJprct9ztLnwERAXCVpN+V6GN3Ns0IzBKX1EE9IehBOi0DI1VJyijqD0dIThkIbDRmlQnPUeQr8IJSfZXvvulVJbM3hmjLnLSLDrzTLbIpwngDeYT3WxTMASypLyo8oS/gWAAeG06bDqA3MUm9YfS5mfK30zHLhNjrXl/G1+E7N4cnRl/Ex0dObC8Dh1CZOS0t9LgXPHH+vx4rdnV/d/6I6MMQuAeKg14ml/FZXg75Zlt/9RViRut3f+JVXFKqYduMQiL+WYl/1pk8Vx1UVGLPjnp4Kr0vT2CtWtPugM342BPbDlGiOKXkJvms5PMlTdfmxD40Ggyz2XZ3CCowgWM 3O9f3bZY4vncw8NWQlG2Z6ReQcHvpZDKNUjuiSXAFGkYdGwZUSS02tD83un4xdgj0BmmI5SYOMhSfMCAe9Q464FI2impEfRQ6yGeNTEkgp5WMTY5lCZEsJYk3TiGiXZ50o8Zc40ipxkAG7gTPH+dXnBVBOhE+oD57ujJvzpWu8aW68DxO8xcN77arvd4qAdh/Bw+/NeIe/4bZoqKdhznW54DHZ/uKLPI12/z5efvovOJyCzc2a81Iw1OcjaP6Q2fyfjw9cb9OfNhpVeEDM2kdFuJel7suBtsh4kyHeqo992lynaUUvzA8FYVw0MJXc7zrXEhQGUYu+PUUcE9+6Au+a7WrJ/oSsWUJDw30xHW5YMHDxXY0zqAJGfdslzzKWeqebYfnPRvVAMNzpFpw5XHSYDXbJpjym8Fpj1Sbzp8vguv8cJkRRzXf4EAPy20964c/jKbf0HpojorMJsXcO4eUEXr7hKvuNKWz3b80vAsbbMukCutl2xzgH/24Wm8n8J3iDHf+y4SM uYjosLpleRQFtbA482M+xPhDuPelNc21Ld4xspL4W+cDyVKQLaV+Jq88VrrDg/cmJjzpS4Wmh+ny7/b8b4+W4/iKTRkXhGxfFz/nEOokJdXbZ79hW59kf426oh9xkwa0xGrD337XZCWrg9+7zA8gSzwYbpcoT5aWY9ycSkac1P3xIKh49iOdJ35MzxtLR2d52zCWo/ylg+9REl1mS/7yftT2yvCybqEk06toKiTuNEDcNriloD3UiGfSqAumi8CXgDzXLIj4nuPxDuUVyh5wCGG6bokRlCPVWZ78qLQqIIMT6uadCr4zzVtlz31iac147Q9oudVOLxuiOT1+fTrADdMugO7Hn3+RRtA/2raaosU77TN/u/Tfmry/6P48O0R3Ves8hRIOoJdNsYprzvY9eYRv6VXY/O+vOdxU/Uf7ZIOT/ORtwS59/6Tsl+wDhG11FaO9pzBsPBlbOwLWbEzDKnabQnxAXiPNGdtmsVeEPGyhCfdRua5/w3QA0pJMpG0aSnls0aA8M bYa8xNd7fcbTyhnz0HZua7csBxZSNkSpxv/wvW1wVkFsVcY8JZGTxkgQ+z0pfJ85t77YODw5zHz0l3sMfm3OMpcHiCLbrwIso1kwTOlAwm7KmeTJVUPo1CcwpI6bh/6b8Z+rgL3Pcb26/rgrchGJnu/XuHuD7+6hf7ZrAIay0caxOIG4Fb8E/+t1v8eTxS7l+WPtbOt2LQf9gU8q5L5bm7x0ZwbnyUbWjmp0O/sV9+z/Hv20F0D2LK/JlzfIp6PTl7sYH4o84VvflJ8jb2ycy3FXMHtRugSHUkMzq041ykvCDIr7kPLOBfax+4dBegXzsAb+EOsi6Yt6M1Y6KPfBU6+vRKvTR+cmOA+Xe1cJjna0yP4LktIAsOdowM/F+bgXdm4FCQr2dOqDUz/d5NJfUViH9tAKsevo64McT7uMIjY35ohHMzkJRjor5jYixVeI31blxDWiFB92ttCetibQ684EaOBm1+on6+d4TqAUFTZGbYPx+bwmsXiP6C0ZXczS8h6PDAweM vlLycCx/3OlGmfG8Qjqzez+DFujfb1VXAKt50B/J+BvoPxrebx64YQ/IKv/eDvDq3f/IMYDFw/b2roY97Gh2uxRUFjy9ptCgJzA9i7rux7rOEKtgMtCzr2nV8WV9a1ob1zfMDY9oLHxTj8GvcMerx0AOAHSwYcJGx8TBTSE1N8zAiA3IXSObPWQ/rK7h3M+RvnJnF+rLCAm4LtJcfcHfxIIMzxgtLnlD8/1sFJh0NS5thGwYmnDGVV2Z5Vcbn60dbjp9yIczs2X8AO3w440TNXKpZzK8ApIZ0nU1oIg38ydZ0PD/wH33pbHkI+XnuC5uToSKhk2K7Q+rY1hI2i8/teO8DD13i7HkQ6w5hiW8SwSmDIHuy1wLlzhF/WlsLpjcfMEMzoP8Dcc4HLn7jewcGLoP1LgOA+wergXCrL7ve38bEbxHTA3Aw+J9jHMgFy/e98/3sriMLL4dPU/mStxlAingvnD7b3sY2sirfNvM9ZrUJ7epYosTcw+2ZAnwBmkQTtjLAgI6M znBTeDrAnyvK26x3DxflgxgHlG1qEofS8CTTKkc6ghowNuBRp8i+wxtgL0SVvRLh026MCnEeQlxu6HbQeiwnhmwQ9XaXeiKgjyvIC9zDmzCyYBvmiFSZnCKhSRtt+BAB9roMEilOD0DJ/PNIh5gG1YVtgMiPnc1gQsfH5MsxV8ETnDPnOyUlahg9fwBdCl4R4Mkc9Dcuv3zUa3wZX/cDHvOzeNRPtdfPd4bAx0KnimmJSsoXg4E4oRyM8Knt9OJ2B6Ag7twVPphfjZkbbQ4G6DH7O6Xfsb/08X4dcjYvKhYVvZmvLvrYDZwY803ZPeasd5nuH1X/S6D5r6PyvzD1/Iq6PPzeBRE+AmMELE0GZx+HyHBQevyBUV7AFV7hi091yO8vQX9rlY5gZwXr6UVY+vRHfC+02Z07Sx22RuNBx8giWRaSNwqslbZiRfbQehBoHtCq9RQ2FnAF8dO0Pns3SfUEQ7f2paOb6pe62LIwszLFOMXcIu8rywIXlVZXsn+vjUJE8K4vM BJQ146+C2Q4KZAZaJrbgiNthYbDXGK9F8GyZZfEJlE9AMqLzql3RuhjdQL2L73Bd449xXSCpF10G1zA8lIQmRZ9ezXHhd8Uv51bh/0KbRJNN871h5Rm/aImVmk6/Cw+/vRfp5pyRkuxBt4I3t4A+DfLKBg9L+cg39uDE9jvfed8bd30f+VR1w95fue8Ee54FUi2FpXosTTVx1w/n18tqI9Gxc2AqPdL0rkvChciBMUIph7oK1Bu4HHCwJ9m4kBrs/EVdZ9D2iahqLYPzNLRcMP45DBIuVmQGE/WiN+63ThLz4AT8R2FETImZ2qVdvC/VsWJwDrEXtCP/PcG3j0anNldbtT92z2MhFL/RXJlomsW+Zxv8CpC2BdbL4AbFQP/HiMUvHkYkww+sFtkJ/FR14upwDRQdenxWlg6vY8bCfNLHNCmBiQzgwuiGv6VYwatovKU8zYQfBn2RO3jTwvkm8YdOr43hShzB3CvYeJfu0KHlusfWCrR3KP0JWYkVilykhQsIBoBIM JhRqefuQz+M0mHMm9/4I7wL7R/1Cr+c61h1gOm2mDYDs6wHTgHN+4Hq4PuF/T/mUfYAobyzBx87Ap/feYnESgSgkL14SQP1vI5JIE4e2SmDnw7CFvCulBOkWvr8gUKUmke3r7mJf9BvrsIrumEV3tiGRA/J6QSyLQ7qH/IeyA/QKkkzr/NlKQ+yXJrlHlKJ8d3Mn8ABgK0jSC3VBcxCMP7fHOweZ6cXdi6EYsu9dSekKqnBNMPxV0Snx3vAjGOvQ7eCgBxcuB1ZiYEfwATAYLA9wX2Jow25UzRHPaPv5g/zEJqU4C6ko5LEcP9LHgDutZtZzjVw8MWASZPbFcpvIXjTPH+OUiNf8dTwHfi2CuplnrBAiPV7j9q3kwlUxk7zYlt+qTP5ltD2AzaOxKZqYgVTCgFUfVI7QIzzjhLiluFtoD6ywUrqY8+2W2DiDfGzWIDyV8uw9f9/tggZnmgcpe45g5x/rpDfDL1w6ZQ9jLkb+z9GHhElE86wYfPEP0Gv3/cHZ73e8M QRLjciDlnMKQb6fRLBjN8skFB4DauwWEmA7j3TAWexphqGCNwainkNJ9b9SVefnD7iS802eFbIMCYpyiSJDJqjwAkwfHUIwiRewTNhPZ9wmk90q93798FWdWYCH8ecA2ephvsh1kOnOgV6B36AqfsPeC+cOQe3+4SUhMTlEgSZEqk8J/BwNhITDzESsrp7V04hhg6PPcH2Bd8e0CLE1zgUOzB0P6/pF9Bf0IudtovjrMDDOuVsaz7w/ZvvExfnP3Yb96Y/YzGzm1aQ0xMOq/yQ/MyTzTItt80+3Qa6Evz0eUYcn9mI6ErMCob5GHFHGXQU8SCescv2DF7Qf9C1bYNYF74rzC1ibiC6goDDd5PfPIhnI2/cJCIN/3PD2DeJVYf4T27ER2jxmwTWK/bY3IkSQoB/UQy/9saoQm5/i2Uc8T6PtU0MJ/ufxvhf5H6Cmls/vyN6p1jAp6RnsHK0wng/LC5uCDZV0WqJXLRwKE6GAXBdTwpMjOksDF7gSUDeM9HUi0x9/MM fSIUeAxB14IQWLqcgLkeUuzNIjf4OnxQQaXrx3DHkZMUXhnga1HDkQhxekEWuaT7Zp4asDoSa1ClmWkRIZYWcgY6kcX9uD0Qszn5xN0HTnysEX9+xiSbzAH7BLg7N8X+BDwcMp8HAKnJsCdJakUXMczXpyy8Zj+BJwdIr0SHjNSYwMnsh85nBmRk/0TA4ROi7ODFEYo2wRn7Jv6QmPMlbG8hFydM9VoDsRmwJV7uxIhZ+U2nrbVrH2i7VVrIu5KZTTk5drM3ncd/7hpYD33ECew0ieSYtXtWDSkP6XzeJPj+Kv47mNPfYcdwOme7G2s+1TfQUb+ZF6sKZqZ506SYGDediHa1sEenG5TRQuDYLwLFb1K9hMysm/YpmefV4Mix8KtZguMYiwVejK7M9nIoLVf24SnL1sFxI55+aARCgacBFm1tnehzIHpe8q7184NTYnbSMgF3P180thiQEb3X6hBsCyzzWfByY0EBpNWwSetnGGwPlnzPDMR/j1732CIsuW9GHRToM X8xrOBc4kiKfZH7DpFkci9ynDaMH3sUsmcFMcC8S8Y5egxlMp7cICgZiMw5Lhv4mol9cYdCJ6PQhoZttKkSetwbNiLzfbErMiGytxWPf0ogPCmkg3/HB+NfYvvtuXnFUZMc1MozIMc+/bwsUfoYtSHdxFu5+Yxd5DX9vCV06+PreH1t/rYLmLjwv9xf/i9N/hFa5g+wHPX+g/7w6vMYY8J5FCnicTm/SiwlMCYT6DTJMaPhcsVnrXWMVF9eYxQLl7keXH67qCnshgDaUQnC2mLKEpC4k6Mhgef+1JsMbgkIVuubYIQ4+6CDYKgoyqHGAmJtKPCVd7VfAibKDNf1UWMRkS0ONR9Q8Dvc6fYNw+UDw7OXYfvwMYFqz6woOkOQ5j3HOU8nsfcUBBZQFdPcV5C2jQVdfHzGk4IWvmRtFEQgh+Vd8VH7bzWOZkITRMJzQ2V/kT3JvSLbCiOZUhW9BgUZ6mGOyQlkqjT9CDg3RU6Z/DZylCIzdaJdvxoQdBSMB3P/uXTUYM 4y9DlmxPBwDthwuy601fjewJTKr14DL9hUYflMOkz7pmBOwzt3IfbjRxDxlPr6Z5oyWO85P+HfmwI2gm2a5n/LS24yJJ87wyRiPRIHFmXc345RnHqocISKxTaD0auY4fe4HaiXv8Jhr3ThLzPtHNkFm5k4qhmznOH1X3zjU4B2Kl6xqa963649GOTAg792SzUoA8BMO1BdGU77vhDnlkyry+wCUEBvOHGA9WWZhNPG9jHuRnmyVHP5CzV8shqGmZ70tKUCiPKzxx/6Dc4P8hSNyRWGR7hASvO+wKlAnyXgxnnVo+zVShcL8OpkqFhqb8UTVCUTkuEZpzZpXsPsSGafM//A94NpbhjPhI9u+0GldvyQl2lpLVIjWA2l+wa/rjKFygzlyVnzyn+uKB+l0lM7QGW3Kj5Y5gWNeMU1vJNcVdGgK2AxgqE8KRta9D7b64KRT30HD8+9gNfytf3690bgXsQWMMQMQ9wM6uPvLzPqwPNN4dnW+L0RWFrRRxb/nmj43gZ+SzM LMd1l/NvnqLSdZFyE8OgLPWqWP9ajj1ftgSh5aKwAqoCApKxhw0oKQHdQFa4NwFQAqbgRNQu7EbFY4zizhMZ/r5OOwhBBtsMG+nr4lgLcAP0DaW8UGGp3cXXzEZmjjRWRMPa5MvvNsc8qu+4ElrpH3Xb3Hp+uFoHNAD0ssZ5IhGfjRRoeEq4EQB1mMqgaMU6ohNVtlY/A5shwIVj+LtT6muROk0PBEAjchyfxgxaqvpGocW6/UUF6AZrsWi8krq39nwD2POYRpVdPsFYrFA0R+VadzimlEliUrN5CTLwjcs2QolxBfFzcqrA6SQ0gTBd8zkQDGcI3VaWYkKxcGNn5e6MU10LhZlALwr+wBX+JrK/iKG56wn3+YUYH8OTeET7f/t6aor1qF3z4FErZaxPmfsP+ZSnwJjjxJCpHZ0KeZn/tAJCtHjvb16B4LePfrnB1r1n+SGrmrU9YKoWJFVFgRC9Zmg8t8pGAxhcslx0P1ZvgJ5MQcKjV4lUFrhCsIawlsooQWpMM ReQ4rohTLk0Fze5fJfvNPYGoULFUNOMg5yd9SyhOAMRSrxEfinDL3k+xbscSMfGNqdpRA0ucyS/mJnpfdPs63waJPgrCjiBxIKphrEvuWgXUAZUUL84gXO6MU0wRIacSIDCw90vzM7l4FedTIfmqApvF+X90F64GmPUaWxzPvilPI6z1/lEWm3pc9WNVp3gpteCMkijAiyE6EqwjbWL0VuaPTj60S4g1u/MgRgpoAXO7oDnOeFwC5660wDfKQLkoP6q3/hCW637v9qePKguhgohfNPZpLrbf8b3h+iflt14auNKUb9V1ozYWIec1NLWwCPbj2FBlw4F9UCfC9eAqTaAPoYUoWhok8+9bSmXy2kdbpvHFt4aGdYjQZV5YXqNp1OK39l+0+/HOJdhIIkTk2oH8acmqTzaM+5Tn5Yu2SerhrxaHYyGb79kNc/PX2a3aUHRpgC+3i0gx3kA3YNpuGtUiyxQkebWQFsfwyAf0hT3AqJ7KewToXEJEflPoEKuMSHdg2hvkM DL6d1DJpaOuXAIfD/vOk26YIzPSN/DLk55AIZsUxvj3zIBSGtNq35/rY35G0Tvld/cMH9fFIXBn+QP1OHUMm4BlZKhdNaqW3UAmnaboNaFGBLXC9T8wyOt9+HlszbYj48xR78ckb/3JU6yG9lh1OZjfNhrnWhidIva/2AVLdmBz7aFr8+ww3ofTbm2gG2E3of2yBTqw0ZNpjpAPXtyyShsxHOzUr0WI20mCLU4xQP3gQ2E0W2HzYPofEaYLIb6nAd1itJP/67pBfBgfJMtQSHX4EwaIY11bmH5yze/VGkjxT9Py+2wFkUoM2h/aOmqAcHd6s4XzatBgOU7AJOmvU7U4jd4oENsxNTsP80SUOxSQRj0TV4eEQx1f12MLu3NpxrYZByazTXRxznqEwZjInFNPsLtyoCB4ayXKhaI81rDKTaH3g22Ynym4slQbOQbJbERGnbgxpodTnxjzwe9PmX26b4b7VETk3uoCFIG3DMBk6vkF10MpWCWWQiiDz6Da5nqPYXXskM oKhDFCoH4sSP9lovPfUC5G15pdgfoCvpoMqdk5e5A2FEepEYeb2fn/Ko4QXWwXxo3apef6TLH/Kmo3xf4hwrhZa45YOfxaSWxjZg1GtFlRylmugFO7jGpDn7ohD9PghrXMB/BJurxUkmXI9r9vA3S5lkjVxVdGqT4Azy7wTBLIqa9stjBQpH9J/GW50UWMXzYDcVf5ad5HEPoFlIxTvyGHL1fBH+9Wj7dSvAt+UO4LrrOJgXgvAFB7ci7bNQ+geSH63uTRo/mW8ntK/MnSui887+lWICh4EscWDNNcNlK3zxlV4wQT0PBC6HybKZZzUA3GNMqEEIt72UJzltkxUTORrt2KEu9xPJOEDw77WczIt2J8RNX4G7lgO67leZ/dfkVwpmJA9U7JRpYOyRzEuptsFtYcxaVPZLO5uB9vJM+GmV/QHBLfjmbc/GmT8wPJs7r2m2L2X8fTP4/5PGw9YRzBdLbNCnuGbOu8clEg9HiBYt8EYJgx4rcVfjdV+BV2qxlhQATDj1M HlZd6kWeLpVIsug+/GHBxmzhCOtGyFF8PBCjzxCRrz5+1yq07h+Wz9M0uHunP56z0UcmAMwXRhgeisZhz2srdjUm6m492qWerLbjtE4uNmA94RSczRQl8TzUHo6+9/X0j9+l24aHZvnF6hI9GU0pxS6boIiB4QS9GTLBnGrEkpbVhKt933KSmWq2q6AK4B88bvgd8PFX3BK1KBfjuYMW+WsgPiuc8ugHFPECLJymVSlNxNnNnL0StFg+OaD1VP06TQxbD2aVejTftyqV/l8DX4yaR5PxNba7Dbc9RFtLH/EZub6/zh7hswo9h8TGtFwL5aIxHNNeuEJSu+NdZqaV4AEuyuBIXFWoVDEPEo7I3ysggpPhOeqjGlQ7NJC89GV3SQMQ9KwgZL6OTjEZ30irkBNJRoDksBjwnNbmtX5WRp42WNc6SNp8OfJzSFMOTj84NCO9F4TFQ6MlXOtmI2FvZ4Z6n+B4BGKGY7nn+3SjeQhix5ExqAigkx2sbG88NJPsHxbSzoG6M sE8MoRlaVYENoYDyBr0Xqe5Wp4vhrtiEeQxnapDXBmw4YZXnNu1e6jXp7Z3kPANaWXj+ka42thdkOpbQdm5miuy+psocP+NWLqN9R+MeI/2mP021Niz5G5pqZ+CWhuGh7/NpATjyHLFLXmHyWjTbCsjre4qbfFMrlA0YpuuKSTS8K3mSxHJO0WdkusdRhYJjZw586uc1jGRrlnrgFWOQB6uZ/3leRYpBmSZ8ltAXUk5PEYr+oHX2waSPdw+d6GMKN8lOtY3m8dphh3YALFWCU5EFaph3fw57zNpLF1VGIylQnLkj9h+Z9N5x/m8qzTlfW8pbBLowmpPhpLSzIfSjwveie0+Q278LRJXuUJVfjK885zxfv26bQCjp3Zx2b1ZHwpSJ7Rw5W49qpbMxtNxF0HL1I0gMTjdbjPzAvicYGSGoCysYtVOvzXUCE+LGDd+uC2EvFvVvPDl81apiX2uL/gmdfdBU93aP+XMDRCMcc3EkghvtFEPocP5Ind6ubzupzwrPyCCnM YaOi8M54SphN7rWkGI9HG6UZpNnI2EQdm4qTIxLpMIWWlKvxR+lxcuFLMC6yAuMEvTZI3xSKaYzBqeR57uq3mFgMOgOWSgqVlMLE/bJBfpT2axv1AdYlh2LKZXE0OMFJmfvOhgK3WEGUtyZDlIoszE0SjfEtPfrSTPo3SPR8s+NOLp8M4Pej5vFBusE4FlmPqdmSxbi3bHIUqHRW5O98Tj+lYiZgpaBY/7qxmCmUrljVAlXEktG6awg3w70pdMTvVu4a+h8LCLZSkvRbrXrAR7l51a7WYWaV2IdT4xqtvYsWJZ4s9Okcjl+AKo4+sTnWuacQnYHI+iajz+hOpXyvjppS+B6OjF0pL6YMNQmGWl5j7I5adHy30NzuaFxoArZU4VCqVBmjX+7cCoXjw+ScMdbMiL2qw/ScP8ivJIVypC6H2tKl3E+g6TTjZ0xWatcC5LXrqO7vWZ3fTMK2JdmjxTfLdsLGNMJYvysQotALID9XlYWrfreeZRZZYRKxGgmvRWeQCoTBM 25bgx3+2PpxjxkI6LWXJSSMDnpFZrGa25X462MCC+mnCvPuxlLFXtmgqk6/lZApUSyJaWsGDwucwEavxgtIK1QkjaZg0Lah3QNI4gxQ6UvHRdMphGOu/HEPPn7ItvFImuoNgOILmASjqFho1p7qZrM/fbVkT5LtS9qdgTqNrDM+6OCj/tICs3BTF+Tnd7syuDVos/hN1HpqPWwcal0+6YFW9b0Oh/p4PrtSHyWrNyN5JYO/eQ3wTyQoxU9StQ456q72PmkIWUQG4F3qlA1SVcF6i4I80Bk5l6AD4QIB0i68GH9F9Cd7y8fMe6cPxZGFa2ihI9MAI665iOqMSI52KyMAqIW+7eCPY2QpWKN10qRk86XkrqMgndTylaxH1ZcmDZmyznfSQBtFID2Omv8PeaDyasyfRjkfKmhM9G6p37xt+13i0IvhgeWMwIMv93XyRDAe2ZR1qHqu6ALU9IrwO8Fo2ds/2Dl96JFFcHTslfYZbqMNRMMVAe8mFEjsJgIkqd7TLAOs6M wEq2LQWVcl7wJgfUaiEoFZHaDJyjWztQL+sETpoCI3Rzj95vNW83nbe3LLuQE2ZG7/a372y9h+0bK+jvqcd9U3xDIEvXCSLmZjeL6xOUh4oDiDqYsqwfiUI68vzucr8uNo7DCpE9soCYwoVKggwnBInN6fqu4l5pLIlb3whXYNSSAbOYw3e88jWnjFgLROO8cPn5oFlyIhRVC6pXXgAnVE4bXucr3+y5Ru9VJ2LPIlhVa3sC3LylL12QovOAhik3tRlmma51GWFKyc24+oVcZ2AyhyN2wTqeb4IvR8yDwOi6ECLrO+oYjGEo6TCjAeW8O5oVOT1Z0xe4NdXE4Y5shGurODK+LS4I0ibUggNxe1bV3U4BpeU1murtK45dG29DwYkk5xSItce1m96GqSfXU/xbag3GzPujYsfhjTnxzGOezaqy+xxa+C7cafenrgut+mIOPDMeK4Mt7IVtnrtOCTtW3kiLB6LgaQOG8X7OvFon+rojxc9GTIlDl5rXnORPwmztZkYqM kxDMVdLlF/UKojDxcA4lPpEZULXG5vZO8+Yr31T+ECnSAwciA45jIGKJPB6sMFxngU9uAGD5m4tJDT7aW7ucsGU2O9vI4IVf7OIqslrADVaWB1MYrVZ4qRJ4+ZksLvtKK+D0UX+eNwpSXzmHfDaoAea9Ond1qW9dwClVjtJUYR4Np3lwIG8f6YWK+X1dHanPbiXvvhVjlnicljAtbQOEQzrpUXWeqMF/MYLIUiyYtB6gnzl+8LNk6fsYr6ZCMGWlMTGpvbz9m4pPST4XcTZ1wi7YZaI03k/4BZndutHOo+8FdwuuWJdEC3ZsonWtrWx7VP5cmgeuZzBSU3wDGYPF9dxlICAxcjHgKNTaQAIysh2AbowEDfsWuQ7/0Lzj3qcBfgeJVpHRhxXEgaiqtLzqJSRMwg0kxhxC/zgu6BsqbJ2NJXclzFa4jnvftM8+K2lZ9FeAFICNzVQsxuwizOL2t5pMhEiL6Oh2VlLnnYf0VaAb5V0CWVIhyOcVKij6WDUPustWbDwZM RGtRmHvm9FHWX3mg03M7JlaWSD7opBH1NapuONmcvVUwsYPZw01TjsvfSBLm6smXTQR1L7ucX4bFVPgU8ht8SDVuICjC/u4kx/UclRgnDZs8a0wcI2owFeNGls/SF6BDJkUFDbNJUfKI+tAMASkbxPMPzFF1554C+HOGSydpZhTCIFrG4lz9gN4MOkjHjedF74jcqvZQaJAmCopFAkrHniZ9YvGQsycCHTDxvi5Y229zVe4KwjSwTwIvQocmFJRbq6tc4dyDvdnht5Qbg3hUcO5ZaCpGdcyAuyfS7PQHhHxyEaiw610F0QIbss03u/QqM8Eswim3eM/0sO8BEgvPxhD189C+wkQkNtmVPMdvhGG6z/1ltQ+6zMMjl60L02mVNvCiSSDr1EHTOjbbKJMzJ+5pxDeX6BNvi7DlI/SGW4mGlgNAO/JC+iFc3u/er6LnkyYStfW0v8Zqh+cm/AyGjkJlqLu0icuYqMJJOWPCR+gue/92pWIk5NNxCMr+EX5DNdDMuV3eM KvbCfQSIRZaHVtQo9hp2mVwZ1QLcYgrEqYkdIT+Q3/AKsInF+F0/qo435UTj8IvPFA4ycl+TgxG71t90VTAkkaPF0dc/zZrYWWWRQQ3ZrOML4w7Mz9kM5eAo0bSSDkQ5D3RwUD79iLjtXqNcR2YsjRqdo5d3sutKRKLfkgg/Yrn5b5PZ8ucRi79+N9Ep5EMQubaGL7tLaUukbpCPNDSCZGAQoddQiVqSp+Tl4/Wfkq2QDAyH9pjMG111WvSaCIAwPpEROanomKhzoA7YlKX92DlgpLbTbzKlg/1UA0TT2/EHwQpaE992XeeDJExOqDMOsVrmi2iTkIK3IDABA70bb2Rrk9/JqRScDy6NjD6T6kF1CnmGrmHbFOmPgx2IagfCXHCzmUiXVcTUsm3zIrd9K5NdTF7QXKILmW+Mese6ipqGM7RNtY6jxDnP5wlIDPV43WDa1kyesE7pS+eAL3J7+ga+BtY+/SfdraKbbxaKXfqqw6EhON+AQ4jamT80fCptlPpBJxiJM HCdCzOYS7e9I7v8b5IuOCvODM3wBh9Hhgjg6+TBIfKOzW13phOlsowyhwnqtn3jG/94oFsIJPL9Ll6Htv3L40Kz/fW7VvfveMYxpGhek7GF1WIzfLO/5S2QmMQDGOXAhUPApniHUPe9KmOGwmUNmvMQ4nJ+m+L2ElP6BIGiD4I1kVmaokhNkqLjclwDQ/n3lE27HrhNqufaJhTrmIwvRN2xqjPZ8l/oPUe2V87GVpVKM9sSmDTNW7aFhPlDvp5zm5fesJ0UJmeR4qi00yXZtnrHlLEscCGigHMMbCKCOix5T5TzRT6qT1YZPPWr8Ml+OhROkV/eCsxDQDByz7FCWCq13emKxnp0VjgW2MwOF1p51nMnuMpaYgbN0gaMINsZ4TrbMLZWuWDtXVIcqjXeKWgmBCCj0ppBiZ33ZCyEkPvH3S92YOO6Tb3R8KeCC+5swMbsWznci6nda12VsxwEtD5el+o+5PpIvoj6G9LFHDiBeJabt3wFY3CxEm9aMC0b1gEP2KYxhM +vfxiOyV4qNMgegp11n4oXk6hbJgo7apuyyLSwKELQ5j5TAHQG0smhHOxxPaxZFhJdhtWcZjtsAK7LdRKDHomeZDDymEbXOutAA2FMS6TeZwmNwT42rHEeocQFrhXcBvMs97lbc15XKo2imtIFQ+GKYwDh0+OktdWUs7nKs+bms4n9SAdeBujFl6TI9BTJBfYy9fvzYxlQ/ueMAw0J12bhEbfjwoObdlVg7OMMVpLLfP+sUh1eR4eSjomz3qf2B5NmCKo6pYFWESdTMYj1G8aqHQPOOCbsMFPMwJdyor1CeN6m0yhIfIK1vSLYaV8/rOsE7NS+WhWiMJD3fuFzmdHOihUWThFGJahwWv5IGjGIbidIOy2BzaUlWFmSoYQUr3WcDUJUsK2XQbkzlVu1RGC7Or/IodRR6vKH8RBYgt54jX8oyjt1fjjy39hElWfYhCfozWImHhC+SPaNN3nQtk6CCtSEbcy4KCVQf7zkfL9+ZTn4T71BkLvuhVZs7h6AAxvYNI+PylM ia4EUt0DF/zWkOCIYBVFlWwa2VbiwgJW8RximvsV8+N3QwKDVXPc8mvZmfKgZ6b8wtzJ4x+9pUyqYHzwXRbJcaZTITV0POwu5K6i57mwQ0Ko90vGD2s+3QpZ/M7+lYqWaiDzl6SASZgZXEEZbB5SmKLEabf5vm9xOetbM+j4gVP+GwKTBCo6I2bCtAh/owK0h887yCPRc6CplNS4yQqZvRTZ4NndkCrmr7zJogZpIY9MH14jnl0BD3Edf+ZW038ToB2MCLiCthid0flq49ENe5nyBryDfVqblEph/Hws95slnvd+gmbjHYnCQtSdjK0PJp2DbDEIeqtPBnEYexaY27P/xqBjr8YlhmwanoyKx07gF9dr8cvEsXjO0CFrYrS3zy2yKh6dRP9QPQb0YGQmFVEsOR37YyLu4ge2E2BLmWTh5l7XPYbopn8F4tR+HgKLAT3K9TdhHwvQFb5qZHOwxj63JWq3OOze1oQrG+Wj+IsrZm/fq2QBU+8pVtmJeHushvg+Lnc8M H7tQZ9uYuP7QKw5R6C7ZfC423VC9dcl1lC/akh1t28ZjfALCB0y4lZG+H9+312GexcAhWoNSz24eR01tqwV/TBbw0rg5Gp0iBZuDVATreJttkSHvSpiVxLf+GFFq1rvc1Yjo8TSbkBlTS9HbHNDkXBlb1xMHK4jcU/2ej7ymk+9Tj4x/v89GZFCayoe+v+J3wXgFex2hPlbdLiKPjA8UVSLSfGkHaFFpilerty8nxjNvaVO2bhLReZS1w/9TDDKtuLEzFwz3EM3TNR/3zQqjSRBjmrkhr27CMX8aEX85EHU6d8OLMmjNTU/1pkpRUw3Z8HmwF7sFgVpjzkyIfFRYWvxQXStFnff0xzpchkO7GiW9Gnr/PoAcfEMibEDMb6I+eflXn/g875gDNHOQxEb/kxUI++ap2tOVOE8jq2ZBJd30uVJzwEu8g4TG4qKW6RFk02rfw+D1HDzCRrIjh2T4bQzJziZJOp8EmiW9T0CYbQhWAVNXegPafQPNIggxRhDD4AUx3M5DM aeTL4wPiBJY5m34URhaxlnko3mUxb3jhUqAbWIaoneca5vWyy6WLdyH+E1TNhyW/U6JtuGVPLULFh2Jk5ZIcHJt3zyRYvajFMlsDu/6Y5NC8sb0UKCW9feSP3Er688R6+mivA8NE5bEfWoXLKx1Ci5/3aZyRuqqeAMcqkVlvaZdzrN4PK33oRgpKZgAukzX6QEsZAhTk8x4yvUoxMDQGJUjC+qMIXCa+xmu+yC/QEs7nI6xIAjPVioxQvwpeh2DnqYDAiJYdRxDz6K7azqnyH//xLKsZt6k+zEtXtXsxd9S6daxoBtJNObQTRBLF9V0e+LNBZbo/6CtNUyknmrVJor6r4jz4PSV8W6k9JMLsWuAylMqjGCUlJlrMNnbM5BmzPINgWM4iwzwGlkJdPfo0vKmPpFnjvZqFSePWKBDjmKsbgtBJ3K7GpnvPRqnDGZlM6GXrRlpNPgTmtbsGeu+SRJvc2sCIJ1rEbnbDiTUV8OVJ9OFQkefW0udM+Gspmtl7UtFPe2VTM z0IDti2MsUnJKS4PuXav2VPlW0WTp70FwVQVjvaksm/wJgrwsRunR7eD6Kqo5UImUvkldVh9DlSH1CmM1g9Cvg+aqX2wo+PmtdXvTA3wZ3VF7oaXFBD0SNnsmSyOg9ZUWtSM04z2ts3sHjL9JyWbeg8cErl2LwZrc5x7XyM2B6A1X+DrdC1FibCovaLJowwmcb5prP0FvO95q34DHynic8LfX/M0UAQMURQWsw/RUY2tEiv/qh/mGpuxWpWdYeDzzHg0knz2Mnk6cxbcjfjpXjPsz6DoY7DGkWRrcpyNa5GfUOjNbHIGNJzewlV1V3mPW5jrX6mexgfGhpCZZ32a9JdqJoq0lwlx9IhwGnZMjSZHsC6PQ7kr0O4UiuP8vVf9C6Zjel7xAm4nE/32XRO+l5+gtcucvYeqe7b2tIhz+BZh/xoywa+KSDE5D8Y2cG/JjNnf/FseaYo8SeUoqRAM33tVPZCk4jgMwea5P4Rkm2QywyGIvwpDEg4YfkBoM3eXB7uLyGS3M tLpUVl6S+5wffdku0DutCz28X91ywGFZrmis9IqiwdVXKKjd143/M0h2FIhKLq1fMhbeODSZl8UFZM7eaMnbEaEETRO/X6K5kecLuxetwiR1sSAyV3s1e+f+/syCvTYEt/Ars82ow9/V8f8kHBE98atPC3YhvGUBaYnVFid2JoAyhcIIeYX46fMxG1DDCCXzsabcn9YBIY7jOA9dXhDtynLXDuiikhjG266UNFjPuYnwED82lF+piQuJ+a3xTlb1XXg6XudEBYSqRHX0S8IgtrcM6OJamaCkEGsdOvGJ/VdEhW2aD+rEy5POWpvFNdviurutjdHhOF1ZJr2DhYdYIzjcJVUrbbjTNLgKt2QRttlchVqT5XoM7Z3DgNCawqWGWa1J/0AvC76st4d0idgY9GnfoUIO7fmuWLkLCiscvQOVtFn/tXA+V9bRiAZQ/xLg/SoLCpHkQr3yWZjCgNHFrJFuESagLXUHKiWrqZjevsrj0VD8IVZvmXxrnplcqyHyJ5oEPlMKM vC7YXh3+F1LA4i4h6eNRXusiQvqZVHlcdNA2AyUuBZLvdrsZrvu4btkibHKuJkb/6sZDXXtBoLlxe+NSg/xXvCn14R9XeLiEWplCelHwxLyfALZwl9evgPsVpQaSQ4zhrYi/BKGlH33s74EtGTfggnyOImC9gMuc5QNfqaH6zXX9xYGegyPUkTTMs8RrDRVg8m8QlEbQADJlXqQSp6zyqgQConYIHViwiuHyLK+mkJkKMVgZY2nBRN6uPI/aUYIvUAWTk9J1PIvepiZB8O4xl5kjO92yryTWdSbAjpmWonBG4e/xG4nBRmOY37SuJ0UQo2cKfuvDWb7aLrS9AixMyHeiCHweJ0U4u+2XxI1Ew+uaYZI9+SOTENWahMlXNVbzF8gyN78SosBgmxzH+hIED90cO01VR6V1KWrPLGoh2r5cXa3YnkfMjTTHKRfWzyfTPeIGRP2ZHFsSY4fwcLWUxdcw5I4UUxzyz3Kbv87ClvBt3Gc25QRWfxOZPV1iLFLDXPDbsP+zM X/XgMBxtc/SoMEv1NnXiBuu57PkgLa/s9BKFujic2teMC103pv8tixWXSRBRZFz12M+mN9Z+1yACspwBwTjCmXeknWbpkmJs/oRjMqnOf9vtb0632B79morqUbci/lqPFsko06Zd43+7oV7L18bDijob6fd8wXLD9G7srLWRba6A9We6cqVSxHeWXQzkn28RqWALxzbSdpFIFdPghBZg8/3eYneLuGeHEm04HTVvneZHm7kQnw/RwMCs/hg3uq6rb5YE7ocpNJz4PMUU77RASG9c8tiyxZvj/mH2hFySSs4h3ZU3iTwH0t69sg7rjJoN7ONiIKvWKXzGrSA6eDyoRUNb4U7LWuV6diHgFK8wzHi+n2PNHqF4MfFbV6fX9qOTK36KgPOQj6ziogsfyeVkbLlZ2Vnj4s5DXeKGwhxxJbtmv6mzt8iYcW8tvRo/aEWAkJo6f1nabxiI0mH/2aSYQFvA0KI887nYzc+nSB+W5cz8hEeSPBe4k18G7JlAzup03K9VMJtQM m23BCnZc0HhUUunMDLEMu7NFLJ5mZp6kLeb4RnZUSMNdvUeYQwsIfiVezJlFfMlPTRJ/1ZNlZ7xmVUaloPoPoa5uN3lbzuu1SJpaT2E9NnyFB7wOyzpV6C8qHTmFA/aHDpzqIEMK5/4ja7yb0goA2fgacYhSvOkFS+h7P3qjpY4TeTccwkF+NFtaVJGz9zhJWgSXo8pwehs5kxZj/dHHdPLsn2stpJChV+69Z6kDnoGLyM02omcH2ZMjYm8I14cX6w37FGCXSipzyJdU8fnmXhru0yWYmB0SujIWzcwzIZg90LGVkFjRdD4jiZlS3Hz+rH1fRPc5Jt7fIfPmh162q7fG4TtflglMbdwUQDd90C6zEvfY2PjZDZ2h++s1y/kUX+OA4qYY3z550jk8W0jNPbyD5pQHPLmYzvfLhJu9LiODUvvyZFIwxpD6mdkt9wEq4ZGrTyS7p3lazg9Fqcq8GpaD+sJXY9N6Gol7ak8zNdMXV5KCaUSPko6hujJQaFM8u55HJkD7M Ve4P7FDD8ruqT1TrrASlLN4XCBsvdB4XOq2f2s4FvAfiYK012nkle87x9YxlfAjnBujQdbY3GlePqWjim1BJJlhsSObXxQdfIEM4hdREDB20JePm37WTKjVbSLakinb00T3jRegGklqpDLEHsxFwOj0FwvkXHarsMKoV2MIWrQMAXLMhM5GbDijduxRzyuCBjpUzxt4kErgjk+UNsMlOYzxkrc4n9b0cQcZze3mc5FWunZGQQ7LT33rfUqBMiRihiTvbsT/BwHMaYTTTIn9g0xwzYEywOesorRgZ/OewTquOYGM9zlR6/wOXNL4D+5dRX1Mc20Mi1G7iI+MU+K6vPh1WKCqq9ElldieBR0OWesT3QDqsVXHYRiYIk6TeCSvtPcOKY2uc3MfDGoreKrsVzMSJX5J8QLKVm1GC+XUll1Q3EDDqeI5Gn/Nz2vrb7dp3LKkAnO1Hdgf0MRhyupsaHKZaa5fmE1Pawu0hOs07JxRwBqx8+iECv7VJyUxqIpFwA3BBaH9TM yeaT65S5GtRDSTkSaRrsPKtPSmm2gaokQrg81WzXQocwGcXrKaqKpxBBcl/w/t3mzNguE8j5008/u/TouLIsolKQMwxx8+VZ/QKPKGm4D2U4j2mYNqlgfGvxGC2aoOjUxVhxK0WsZCctTMC0NT1ujkvjzfwGFamhIqbjzLNTyYr2SKKnmAvDLcvkdhPWK1+QsGv9dVF+dR1ygIo6V0bWHtdFe3WWlG0WhimuFKAqicXlZnK3NLnpLv0w550opYac6yOBS38grqvUXp3YzadubIhiOZNtEhNglEVjGUQvp+da3TnLJ6KBgEO8xoYJHcBPkjczVcxRl3zWJicv1G9gT3OcP1mEeOheJo1uWf4TFUMAu9y3he9lKSPonewvpzrXrvA6o49VRbOimBwnycHsft2BiNmQJcCkTTzPCSsnAWIVdN6oxGQTshr3Iln5rUup2JPKEtMfnDcrqck7mlo/CEPY2FVjrfJCjgN7In4eBAoCpfSw3qoS0z9+0lVNjnOiG/kCUgtnM C1rCUmSlXyaMqt6iFiVXaX1ZNRjkAuaCcluMPoCKQYR6LuZGBqtFktCmNOt0zyNgI1VIGnuNgfvi8sCi0M+Zc+MvWKLjf9AaIWjdRxYkvPyymPOS7fc6ZOfHYIe+dyzVuSCe84Kevn6QJ4w/SBwT3JXMw/izBx9j7rK57DSl4XythCKeaohl8QRQhg1QGbxdHYuUnn5dLuGiOTmVhgn7jeX7M8MhPuiF6rGUdDNNe5uBPcg+iHwmtJ9fB+Utw3FKvOydOIOHahz1mEsKbJzAI1e5KsQ9H1VwD6hGgzcXvAC6zsyQPJxBPeOnNMjC2OLLtL5ZjMhgqTFFY2eZyiKSHAJx1cRredvueyijsmpbFZgpgj8JK04heok/UyXEbV34X6M7PAFx+IE0g40FlR0XfoeWYUdWmKnfPYtqaCFSfF8R1KdmQxlJRhTkbNUp2RSnO5GapjHZeNUOoN/UnT6OFMeyWzLH2tRU+oC52JldeG7+z4eROuQj9mtNKGz9mnKQzmR5z6MSM 5mPoo8dOdwUn/GMW3JNRendkPLLlO/Twu5tJdAvmuJcXriCKkrFFqtMYDRrNJQormh8KzYtFlcu5zCYJZdc8gruYclIzIboaiJwjXW6BqT+tRFsMEiwW5PL5g6GVWlb3HioR1Jp4FSDajOdCUyGA9cP14X4uwUxroEIIQ4aM4uy5+sNgolpb0/8alcPdfl1OdJUAUYadMeGaeZZEa+l1iU5m39JANysjxzTjydFLJLxkFURokOLJkZuSxqEqujIGZktoSB+GIqwyBFK/vAd8wcFe06noL+SB0RwwQgbTLnYclxxk2XkZR1odZdRjPkhHDpX3zjw9JbjLYlmUGK8mF9JPWchdmpv7StDB8cIK6PuvRm5o4ORWNCh3t8brMbZm0JllOVUlVbVATVirbqUOur2fp4mFv8bbjTu3nOK/KkN9DOb/v8p12eeWcRpQDga7ZKUfr43GTlp/R8pDtaRB//Fuq6PtbFR7tEAjhb8g719wQDfXC94EP3Y76Mvy3FvX3xKJN8LyM px0hyCWVYt8jToIpME/VQzmExSU4dDLdAaNc4UwGU1XLo0eFYbr+CtjF2xLZPknpaSGwHci/lwKdo1Zhbt2BB3OfPBEbjTDeQYtPutsZ4xNTV5V3gP91/4QRgFqkJ+EawRtqBk0PhykGrqk09RD9k7m1QHAtrRrEBLvsOh2U+s6p5qkweST30/kgxhkFov4VaKqIShzKvb5GZkLaa3Uh/uoI/DsK5q/SFvPCe+U/pS41QQHKiMl3sDtMd8G4ekHB22fYOtRkOR3pxIzGeNqFJjgRc4kdyisEIhujDb2EwfycnO/L4vS4BZXimZj+0KCW6JA8Voutk0xE1cCYHXaZQRwDSdhDe84vPhZnuwzabOKIvv2FUTeWfgN0Nni2ij2VQw4FHwTEXJM3B8SwNi52RYGsCfZ7nXegbuwEMhWjerpQFrzDD3MUPh/NMfX5WPKiTHrZrAFaQZqm8D4AVkKEXlTLt8GVGSlK2LWeDykMZHYIxbOWmksee6VMs72sZe7TuH646VaaM KUHt1zUs1pUXebozG8YKwkXJmNan3KAeWDOUX3DA3fXFS8xl4JJptyRG/ArxJWhR96CJyeWi6eHsLHl36sykCNDWqs35QqW5wz9yYMbzRFcZbcumrx+JnNDzZbynlUQ4BHPafOkLu5gRWl2C0vNwAaaH9D54/RrZsxkc2T5v7iGMZLe35h5hFW+AtOTzNlDm4bSLJkZv1Y1ExVAEZH2nUI66K2GdXN6FWyryZk2pxUxZVvlZTDk1PBaLkrGtPTxLAKSYiwr7euUDC0iemdrNTYL3pEGgVflWC+8uonMKglZtKv3V4uXsj6JAGfDl+/70apWtvA19NRvVjrnsy2yXzxkLjMrNlSjn3aX19gZuKy7whMYgk3bGOlbUFxYljJqJrkhmLkzpR/4ld+KZPGJJJK3fweg3eWZvHoMtFR/xMXmLwIfOqju6Sl7zfaAE5vGtcClJM80zR04Sj/nsZsMBSa6TrnJI85wFc+M4drSIemTBSQFdxntRfFHxlGxgSNahNV3QtGjKM J7kAOIR7OkA7thDIbq2T00BwQ2kYmC7KlqpqkqTzAhzBptudxvpmFx5zlzbLq1NjTbbJK4MYddCMftnJV0O4O+KJDv4LwPMjcS/bcBXR2cOsaSma2Q/NWyGExzXfZ1qgqwBmIbJbJzX01uiD1NnW2YS5hNllf6tz5QnLhjgZRgJSbB2i94UwS1cswnSchNPGQO+j5p0BOHaV+fh88Ehw1erX3UTQ5sqjNsP5Rs9fcf72Sfzy1w8d8nhPuPcoV0dFnTP7zGO7I6elZhYMF36xNoqwS1qsRI4mTOTaNGAhqku9AKbsV1XI5aRu5kzUrsrlklkW5QNvCK9Oy5NMI3Nvor952tVbl7V1Nx2mYIg3dx6WtJWC+m1zi9UwF3L2aIrd7Ekp6Znrrhl9srG4sL01WsBLG3h3U4OCZshBAP2zvjh010rwxADrE4hGJrAxgeero0jXVM45yv2JdwtiMdnhfTaC3mE7gs2B/Sz4DgZYmtG0lctFlPZpm+eRmL79blFlTqcy4jJyM /AVHYR6jwVl7MKzsUMsFXQm20WbKuQtK+5gzO5OIFsMM6WtTZ+73DXzE5+CWmpJj94Z0N0R/I0ytAQPkUCwAMwNQmNoedQcpTZZjydjQbGbnved/D8M9Ct/qY+p0twwsRmLSOIvW4UaZGhwDUtcS7HipIjmIO3/Y6mlbuR5NgloqQEIts1m3/yvF/EsrM0GA6XZVSFUW3eCciwVJbsu6XOvHk7OfuiMO0Ky3qxmnWvJn7wQ3ZYqQzWfry/YPxY91AgYaSJaE9fYZt3wpe3DWs242aM17+geG1JLOTjIjUrc7kXuZDXZo15Wssp3ShoWjBXxS4d6B9jTBbbdK3ltlrCiCcDnXysvdKHzbM2K1/XclkSvpTY4zkmnpVf5p+4ITQWGY+V2lJf2P3eiskrS4CuyhorOs3Kk3cRO0x+YTrjvB+Ti66F4jgWyYbnhKoH7HPWgBNr5mLVQmtRZ4geIVPFNEAoat1fhXggY23JDmMyupM5ZJwgaZT95I52cEvd39zzRNlE6BM tfkDE/LXbRRWdOZ7IlF7S8HRedB2RSGUPD1AvtWesMtZef+3adg3/8BK9tPr/d72Xmy9whAEnxJJFHaPJJ45SEVQ5cLf5B5dLTpcKvyrOnffsiSy/y1iRGZ04XrU0rU78i8MYyxBpnPH/SBBtRe73uYoedoYHfBFu6ikr6/ZoryAO32aLwRi7TtG2qxQcRsF0vk5rOJSmhtVliFgsvZjalR3qIz3Q4fBUSY+Gy91PC/+Blshpk+TjN9ylyW7sySvRLFQsrjcRcLwsYPFTBVYqJrT3oHVbTAkmW1DC5lLbOXDfdWz+bf1nZ2jsYHnvijbb8GVDXsXJZdk5BqFFF3vJludsbypaWU/Wb1V1eEFmnXDW1VZGGHAUajlX+kMD3afXiiF5DaGB5LOKEGb/aF85wAg9rS78faOj1d+ZZ7D6lgjki8RSER/dE1URWlwsQBkfPFFUE4hu0srb8fqt1Mn/Y5q+RUrPq7TkbTiE4Wp3AXeAVj7mHGNRzz1goxYpQy9wy19zVxTM m1Qr2VgQ1RpNxeP67Vwd0JE8iLFIrbaf5Rm0IXirupqmFUEoXbKI5HWG7VrbxPvPFmBE95xjzMdC88tfUhEuAm+P4AF1uPInbvTe2nk3hGKDTzXrkzWRKrOudK+2wbUbiicFdLXjYnZ6WRs4iVj6wViwVe1vaB5y5HkMUJpRJwI1GM+pDU3KApNuxSboFueGV5Ty0qmBExdAi2WcWq7H642OUP2M5MSL5mJcIK1CTxIQpmvo6dkING9uIFA2VeO+c7rew7pUuRw7js6UOTr1es9O58w9A56Hkk8p4xsrDQM774W5sXANXFP9wLh2+En5c17M5fWfkt8hgz3R6WIEjrtM4DDSlSOxQLk1jVkFe673miuHIeVoTul+JnRGV+cBSX4rTuSFxoZThuG810InwfCIXqLe7OMzoIZe3hICZxMo/jx8eBr7FifRVhvFfBsS2NDqrFsA/4cPoks1nmoZOzdbDB5mDuhHXCoWuZFN+LqQ/UI9gp7S2GXkQLxaUy1VjIssz01zM ievO/CS91mPnLVVTcS6cPORnSb2FYwDslzaqH/Qf6EzPr0q5WA43DmrJzAckKNM0EPmuJX7FGRZGtWFjszB3IcJqukpBgls0y3tRk91cbSOgttdjIbt0rfH3vyu5EtrQN44jOvexNLamXFEIORZwY7uWFmNV6yZv6REAWIEtRmVmq1dV00yuw/VZ8xSWHJqZ90AQ7SYJQCOL0sXocCMVbhcNpMlGNJsliofIjtaiskAj3Ud7Q0qM/7uCBlXtfGRDO7J7HpU7CeVRU6//tjJb2mCyYKSHdI5CmwnQadSZXPxXtXXcOki3xS+Bk4O5l2xRs9cR7QJXJf4EmBCM59Y2boZErByc9GpmRNq5kEQSxW9y0bRgdk4t7ZLBY3mEfO9G8K1J1ugJ89nA+BPIHpWgc2MFY66debAg/zN1JH5Mdp/v5VdWaiG3EKWSE/6iMW4M+f5vlm7/s/tWSHHgkitY5i20H+0UwtkcBcqmvr4Q9ID664Qz3HV+ThfC9OHUyKwFc2DPEtbuM /eJ3Ra4tmYk8mzSZfLVUiiCnCUR8i+MFgTZrGQ4iWR9VjDvpjdcymh4t3UynPMtAIZrck78sW3mA60G3NTMKFfkpU2FCtvRKqXNCnJF7ScOb/Vev24Yl10jk7rS6qzPKYeR1akGUfOoP7qp+fIk/IFSISMmd9cGbbhmmWYPerWu/4sH7w6xQG+exsBzD7KNL1gbWB2WC+o79jWY0/6fNTr4zSBzIBailOgQty/g6IIAXIhOxfrCxXj8GSYCn/3ZAqbmQ9+SYDmyYzH1wWdgHbI6UD2AFk3P04TV515MbLOz5hJC5E2A0OvXlGqarmzjm3z06di9KVgrlm92DzIdDhzrC2hBvF4GWDTnJ8edLOT+f42i2W0T8N0TD+7Eb9MtiOfziMxqpf1Vaym/yWN+gXljWqYZ9Jv2nJL/LnSnhWsuPOyAf0KiM4oiKcT/FSGw+qtzT65RCPiafnYsEvHl3nfTu0aqYBaHatYHUDJJesPmYoGrnBmltotZ2IHPOfyqf0T++fMRfM MtLI+eXdWQTSRtpZRAunVOrZUfvBx2uPSkJZ6DEqF76EmmzKvXxzUT7Ny65eL/UCAgMRGKohwpuGjZsSxIpM12U4m4jC/rme2YCcFSxYB2yAtgpqIfnd5yPnfTe0xolyf6mRXDEDg96mSGqSipiX519veg8gm9RLPH2gMGV2JX3iRDLpPwTdo1yrpIG2jJffrtgmOGujEwLLQV9xLrET2Flkv3fDqBPFNzZWeSsMp8lvJActQA9mYn16cVGYnN+97LsDqqCGtLyZKTcj95tcoJJ7QnJRE5QMTA3DbdgI0Z7bkrGfajyx/3yTRWTfYRih9tE09MW3idX/9UqlZHBaMVvnN2nzMEciU/gVq0H1ok3g+BNWed9LZAxc3aq7hsmVDtjvaruoicLHkzW33JFACQ3kaqxs5r+sLz+plsY+VXbMQrdpRx5pErxyrt7CCeqkrIdR4iAkCUQpPrcKEi5MhTSm3rKrV58X5w1/DvXoyk7nabRdFknFnqaps0zZhpDt+tootIgyM zlaybKHNfn3PCRVOWI4lPO3rogBUbxXrYA/BQQe7hYeGYzGQLmjD5pajiS49TV98WCoLirHhgisFcAD1UMVs/pydEth/+DzgEMXcZx/9LCL3C9f8d2VaQukXMuRwzJfKN5huU4xUYT9z54hE2ndP9/nFDX7VpU6OdX5w0VaiE+lY5WQXmwGH3Ji1truJszrr4mnhRsX5ix0n+8PrUL98w8SjL0mbt9mozAxLC1TBUbFBenOsJf/qWh+C8su9THCfPICyxq4Rke34queadkvm6f+pYm249NzaabmF/LnBqzZsq4MQdB8S3ScOj+Wno/cplpo1fqW5rfZTaPqrJVu3WYwaE+rKOEiG05YNlvaU7jduh6EcOvs1ucTxb3As9qxxSlKg1Yis04n85NMKt9GKmGaqp842R+T5WkzevLJkZIOGenEqWXmeYXGGdXxfnKTu+ics853eppi9MpGZchzYVrGInb5vGGGhTNXKCrUBXEkltO1mTrBqLiEx4C5i5fJPTTsDJk/tM U6Y15fgltwOr2Vkm4Q0qt8iqGLF4IniW3RSk5vO4qTXGMCvHvCydaN9Lk4yxDAdadMOsv0ZDg1rlnarGjWixTEKvfYxhCoPpDrpbIQMNNnvsbLvsbw9jnt1Pld5k+vfXzuEEUCkz8UBMgnGjGQ4MaXQA/iksNnDjUEA+6LIsx5wleDGiTLY3nc1UOQrUSn3Jhk9VkJ8pyRMUZqmw/0riLXGpse6HSwZU2ZMqua31vz7Hy5lnumHY8teD9idV0ho8l+xyOERVg3YTD3+1V9K2GSjOWgY6t/rFqYVbFZcFOCiPq3Y+6PkwRvT+35SmZuvToVDfDqAHoOaw0NSbTCJ2c48Pv0ohmHbUkbBbXmq7iX7sI6BlfFv3XniPoQ2hqqT1YKuz9Wc5immRm7dsDyGj1zghtqMDSIg7VwppRPcstYFQUlxfJNTLMOczDalIynLZkjknyqmfN5Ik6nWuQwuQ+27HLuVPMEF+lSl6pSZGKC0Af2D5swmvMdH8AJgtJuYSX+8Ph/6YM 8Xy0F+H3vEw4Kem+yE87lOTUDUhtHJxj1RrDiVgek/s4eJIRz1DTjmJFvL4H3PQskM1IZo6KxuxthUeS2KsfdqF0evweSwPYKm7aLchbKIoSfa4Uj77C0sZ29zeIJEis6oE2oFBraPdjEc6A5xOx4Sulv+dNXco2mciypkqs0bKiVtyBNFVU7EPkKneg+bYl+ldEQQqxpfStaLdkHfS70B9Mhz6+2GGDKs8/lYFJuH/JtmDpcxNYxEKlu2lEpk0BQkx+XsVn6dZZ8F0BHY2F37gL1ip8BUWonizFUyU1T8VsZhiSnNxx381vDlD0MmNy/6wLhyqhmGauD3F31aOVuTVi8mtTgaLLUJz87t68phglkYbLNqtEu1wzStVMoeHsEwO8E8wuC7Mc8VLLYib92+gi83dDdxS0shFrdn85EbSQexwvA8t+A0n4p7N8ehpZm/vEzUE9YPWhrqWsK+cWOSHEn6qTQH+fKBQ5jbkTSPrEsQg94qpQ2MUDUzuAJlUi9S9mtNQDM ZxwOWgpJnCnRsgrHRhmkdYU4Rp7DUys4yZ6jU1D1ndMppk9hzym1qwkt+HgMh0bnHeN7ufshTzjPLlnWOnTT675vyPp4jSzE2gNlWNIZkmRzruz74idvWr/rN6iHg+bUTEZYTt2wCdAqHkPFk0nlCcajziTrgYzkYbMeazqw7YjC0iDeTa++J04J0PHCazmpmRNO9bFOf69C1wSZAkLkb24mANclGpIsU4pJmaum8YBAnLO+c8l8u37SsNUJaVPBdDUiUAjuVQ+AXH/bDXuBGI5pAaYJImIs+HqykUumR7vybWsNmqUKgCsc0lnHvx9GF9jW8mubql1ONSn448YUknEJkbcsJmSRi4RM5GHVRXqPSQEcUcFCdRpqLm125+aTo4jHSEJPplBsaH1Gdxrqxq6OdZ9G8SEg1R7RCFioqAw1u61oHiHSBqGinm0iqW5Oqg1Otg9ZgNJYc8HNwNU7QluHKaiTQH1uzjhCbfL4ePDjkZ0wFgvHodnm42rEcyTYSm7e/FanM S0lF0DuD/M5LljM2poQByNtQbinAqGpKJywXDsJsU6WcMzfpYc1sg1NnJBaUH7o0/VZQMmA8ECG1NYIlpx5gOZnOlChmE/Z2jZTbFCLYClix3CdneIuFMMF91akILnWCrW2qnRmctEJxM3ScydOLQsmMpsRAdDps9oXn3DmZ+JLWJZGTQ4FegC7A9gvg1jzAwxAhwrpTCGdRMwiNDPpPuIvZP4FZM703sQJiHb+BB3x/cG243h+0rPalnZrjGiFCq++G00ywL/tBun3IbYJHT+rKFduVlek0oTrCNjcVBAzqkVnq69RkilkIGETRgnS6mUKyTruLfZdGM3i24aNY7R1Pfa1HN0HQM/fI6QBspUq3yNNVqqXlMMyS2tqfM7VNknTEo5XUb1lzDdyvOzEs1G28bimpTOlaKLuXwXM8ErMlvIQcb1sTbOX8JMU4kDMu/X70r6qDeiYD3g4g7DmTDEbYt4sw1Z9oFJRYkmtd32AF6Gmzi9rDGwsWvlgJbVnLA06PMl+XM j47Vn9Wyr92JgjGFAWJy+ld7nSpLtItyQb4aitWLibq50Wl3/SA2MPgNhS48d6kYqLp8z9kwQYgyadObTnunf5u9M6DeZEp5EgeIqJyHMe+Dv1Oca8q90kbpudff86M31gf3UX4keAmOXNrwIsN4krWaxBgFKCsBs+SecrlMDqP0vcAj7pUWe9lIQSfQ7Wq37YaRC7nlZXEKkHrls0E0LcEjkBbs5k/1HP1Y+P9+JBeoUmV/rcO450tgNtpvqPDfOw6VPIY0qXdagbKJ7fWKl2XvisyFHgRjIbRCiDFO4AtF1sIUrW6zg5VdMnCE1pfWHT5rQ+g48dnlKXCegqJz9ElhcrB5bGkrgs9Gz5xcA3YCPx/S5kXJK9Sc3iIfOFqRjMNeNK0sw4XrADAYDDqOI7EMbItfsXmFrEsqr6rBQQr8HDu/jHexvkM5OwiPJNVvekAZLBsd54VQ5MIqhSSW/CaFczkum2R7R2ac0wKA5offi4qhbT+TitbUGdwMOLpoXuHCk01vM ORze18p0/7jChdte9pVK22go/JvFI/Nug+YbwlcrslyqkYxviSb4d0diNUwf3r7iMHkaAZpfJJEOZzZOt1WWAqOyl1Gc7VRRtGtZUqb4/tGMkoDIhcaV8u0Y88OUoDeiwSiXIqefqbLosMt03U2TTNqh+y5UPVfGgK9eOazjLohlPRd6Z114UJkIkB1awcrVurgltX8gzDbzT+/PBGxSlMyYYHtYqRryhNBh+J4xqfqyfcA5p2bOmhcb38rl0Ue9A5Zr5xuGNIOwackvX6dYE8TEdMAkYn92l4PbxQKlYVVa4Twsx4jRwFyzgbxvJiWEslDzITWzXchgsKetCBZustG4PPa4adnBw3DKi2zZ3Wtkoa88jmF9vFqOHiEm5ng4WiWETy55YYJ0l0rFqLGgjYXn9Qkil3N7usCXYrSedS1EE/GUQPloPDdlVYXCv33OAb/GJC92ibiX1B12EbyQycZIhTiq+F37/i026ZXQ+Lj7ZCV5ZkEMyaWm+hgcIcHpR4LXq1NgM OUL4rNUj4UYgJ2TDAZfuUFZ9U3q/vQhWnMEc72Ii9FWoAkKrCJXXMsC2O0XlWF5DDgcs5DM1p5Mcj40s1k9DBn+HHBDd3GQTK5a8QSFxgcs/jFwq0dkkpKw7nMXM6kYlMShCrAZ/kJrfz0LrAGoxEOIC7yeRLX+ZbQeKN4Ch0btR1OQ6f9oIVh0s8v7o+G75efFAZY2d5MJCfqyMuHhr0sXMIgYDEVRfJinh6tyEy0qyy3AC+G47ZBuDZ1+1qhE7Clx63uRyKwSaetmqcgMI/nfY19HEc55L3ES1vDimENCZvZaE8pDPrl5Ia7Vk7wkUGxoHsMA3M4CdwN3Ywf15T7hdxQ83wDOZKQTtV1sGI30fShGM6BPdWZ7YkJ5On7Vn3fay47AtVi3Mzu74B+HEf3JJ8s2bkuBpmwwrCSsGofYJkLVBXW7U5PvP1caj+UEtWPtckD1jDV2UnAJZBtPUnWZzJGxI41UgkEaxwubo0TwpNiuD49vjBNXa84T1Zmn7uocw6MuzM zbpfxRXXMgi1GG2WbAVIU6jPbGwCVWl/vceGKSabVUn1MNXCU2LZEz4LS+YlnQEliDk2tfAkyJS2bgyxUv7m/6tiGomTlcwS504wu2cHceUyrEprxsfNVyur3iWZrlj2h7CVellO4/onVfKVt5ecaf6tTdIcsjydhyA02DuWDjSP5s/UN+MLae4ER9I0dh0+gPO5tF0CzspiRbnDYa+4EmoCGLzYiDFGE7+fGE52BQc7Sfj2P5qZ7/nWxeMyk+kuRfLIeFf4a5eLTVZE69N4BHOPQcsS2FJjxavooOeWmzXQHQ5Kdszp+XE0jKghQ+DsvctlltccHUQ+lhc2jVQuEmOKb2PL3nw8c9ueSJJmdlTV37dkz1PbwdJW/h9Bb55lTBPrpdsJdTllMmFhPehv03JkRSSDLbLayci7JtpZ/lXcUqN1U6q2pwPv1iGGTzuTdiThnojceRZhaQBfgJ2xhVPWHLb5s9RXSNpxn9uoD2KOYQ+nENoxCSU6ipLDTIMmNV8eRiq2M dhHgjl4FymvaQxu7qJsn4V4OPFMIe7uKUTb5bcvkUWRhUDAU4buuUcO3bNwjKQd+vKSHrRB7xVz6aT0Iifh/fqGbHfbC3pFtXp9urMMdrRXjd19VTfw7/C08ntxUiqVS2dXTV0tf5NT9oJE+OcH9S/ezfrZmeUzB/ErJaDnkvjNJGdFfGRfrHLtdIXnLULqz5KWSf9mEw6+QwKX71geV02wKGqu9HHBAfoamTpYuj6wTJp7bOE6ke8j9xaSUbG6aqS3mUuksg9tPOuapCqQN7S18qsC7XlJEu4oPpTcF9lgtTJEDakkBq2DA02NMegfrUQJLf7vlNly1BNBD9rfXugS6IEEk+wobClfuB33UYl3fETKRQSlDSW3hx1olQxZyw1xk/klNLokoo4W4QWJCMu3xfq8h0WgPpclUVR/OV44PM+H4nZqhm7ur6LulW9tCg2IHPKdHU0drAr78bMoizsIAC2zN8i8oZm2TgT1Nm6LM0UqTITo4a9y0Icp+bGhrgFREdWuMM lD6NWKH27kP6bvynyMPwfC14wRmNDEbk4fpIfPQdRqlG1WXKXBlFYF+a/ICKtf55wzwGMumFgdqz/5aWPpH/LF6rWIDKcpS9hPZyRdZhGrz4PoXqf1ZkjdymwclbFAZxrGx26c+5ftiibLGIEfh0pA2Fxl5K2Hn2efyenmhR7Vjg9NV+js7+d0Boq7sxLE5rPx4+LNbmlxWI0csft5RJCer39vmHbllyIscWR2R7H5kbEqWD1b+nPxBx8QveacoSG3dYG0MAGMiv+Oz1+R2jWzq68Egp4xl5lTparnO0R1GYmsZMtKLn3JwCnBjOpWX4rqMCdgDCrMo7j7JVmZaD+7E+KJzOH5xpjpZThEGVfGqkp3GT7b6lGN1jPgsKniYi7symSJM1yXldQ/8rasSNPNA9ZcxaRIHakGitw5LA+NhueHrCtFNDvPqlYsc26Fo3L7IutWq4aa2xfM3TYVBNM4K0eQ9TFt2mThcnhhMr4elaCkpJF8k1AN4DLfzCak2S6hclEfPsM tayWK6AIkraERgcrpTNzqLIGytkVwHk6BPXohxKdkBSO4VvU2mliSL4yMWvPPIKRJaD2kfkOCj180wtj731R2g5wOeClOpdos3PeNRXhChNKUw0U82nDfN78NOmiagmN66EunUL2bKSRmoi9vdCEB9YNR+dU4xI994ofVvWW0GUXnsIMUbG9OKXoJIqGAbRj0BLO2hKTcOrr+oUibZlGrhb4lnd9/vJsi4aXC0jaY1Rph6Fpf5ZOZJ7H9IJpmwPRureY85ey2S+LuHkwGq9layzn03D9rC5ktTSDFZ7j4jZUxSr74bZkZJvyKLHD58M0IR4cMAh1aE0tv3y7Hfu04ZJevwyseMK9VF4isdkj2UX/JGF/aSWy/L0kuuroUqGkXg8pGSS8YiXe885UGSet1IkLHJiRcDOnpBrS1/eA5pYz8cwUpW8b3j1Oljm0vO4EwDLOHZXlUU0VyoFj8FXF0lliWqUWeuMNrOBc21EHMKOaR9Le2/s2DGygwvmDPixbKiyCKhO3M Nbj8V9p7oMls+wpyYrN2P1fbNpQVliqgWxeYSZ5i948ja2blRjMoakl9IssxGxWf3VredbSSJZTvX4yfmxk5VVGJ97tNxaxJ10rku35pIi56k8QvyZNmIalo6tCgqUUayz+2z11PmIbedkbLx7H5rqueMcUGmfKL72hKeRI3p8BunmteUUY0aJ5YluXDbpAjUn55LMTqtULl+norvzC+ZZkRgD2U5Y5Gj6H+pu0xzg/rOKMHlSekq22NBHoEgcs1tHETXwOL9vCqomNrlcnka+kjXKXNPbITS5SDgznsMX2bM61KTupH062FyKP2r7NeEvjUSV2rXJglB75pCHwA48gTIfnvNfb48Kkv3cmlmfKaMIyL5YpuejKLMzTu+zfkBIsfJgUgh6RPbLvQLY+nL8lFcl/zUnd+iI8+Nnked2JWbhZqvZvC7MnsLh0u5UnYfBa8lqit0aXMyfbdptKQz2EyeOkDpXViznDsWS6MFpp/YLVSaSpnKVbsQ9rrukxu/dwxjnSrM x6efMs0zhGHMbS6NR9ENto7M6Loyw7/Oh/ejgZMWgQnk7vCq3PRRwmGUIBJSi8CozU8XwIXYKBzRZ1aX8TRNH6Y7ZySiGyhtjDTKqIQe/57vQtqE3DCE/SzDJk6v7kLd1SvrKXfC3nBV02EmjqpLERsCtxi2wNinVJWRun2QturZjrCvVpp+xe1k7KZyIGh6iL9+nBt02yB84YzaBoDdmnmb+ix63UEsaqeg6W9rBtwPPv0P+dXFCYdN/vxQkZBh64bgfYRoRm+LdnECZBcKiYpA4JfD8qu8RDzPxZMV0sP7vtTNKBKLOUlqzeSNhBu7mTn0U3RD1JCCIp8+MVvqzdhi5aWWWKkAf17kTrairWRdBHUye7bPiYFZM4Gd0Agqp9Vf1twux6FCRDYTKS+2bvmJ6KitJla8pWFq3Jq8wWCns6R+xGCxGnWNwKZ3kh4ifMniBHVtAM03yQ4GpXtpMx5YDPAD0aRm+P9TQIF5sTgb0Ob7lf9Hic3bmwc6SuE4Y4dmxQ+gM Vd/90snQsToU7wQyFijtKCi92JEOggICDfFXLUlUZWdRvWzpuNpavQMU3+G4DD/hOqbNHeUfqOs641kcbrizEgDMZtYi1wLuyLianVxSDiaaYjSd5jF4UPqo3pmkc6+PWwgop99OqUZ594zGVZQj4PU7EleKpiDcHDSLobX4ZhLwYa3LsOsWNPtIehJCaFI7k8mplJJzlc1FFpOrdU0UnOCVsaYDpMTWiVNYGoXRSOmVtDR72OeYilfcw2fRWfgXO2d7ME2IL/kB5ma7Bxc9XP607cc9N4Wrw6oRj1ZkN/p3MSikxglECsHnG8cq550hmsPgN9LNDZYR6IxjGhtvFnibnDq5JpWsLVyZVW3c6bQZfE4CJOCZn6PGRFahKQlLSUsZEfTN2xw3Kkib4q9kYN0KM0L/dVZh6OxY33EUhiYBf4QdLCMMt2dWvb5Tw068SCx+ByeaCf0vy7jl6zVpapX7inSadGkhThZTVl3Xj+07YksCgu5pzGUOblcQE5MUqKoZEsi3M 9VaOh4jDpnJEy/FN0F8Op4o9VECL56MEV6+rXRDeBgyx9GtacFxLcIhPufeZhNM+eSRAS+uWU9eXa08VqhIBlZUqog2TpAimhdmpc4mDstKz6N/h2MpYtAmQcq7ElXQ9yWYnxijVsu/6+9K8tuG4mBF/IH2Vy6eZgcZe4+RgGFpUk5sZP5mBc/mkosS6REAo2tUNAkzbWnJq7w3iuiADYIhREDlYgElExntliX4gcTGtfDRGkkVwrC1F3NhpXMle6KOvwXITcAfEPKi+3MINc1/oNnr5P+5vQDBR2b0Vpf7mZl5h3LCuwx9/jikC2M5g2mRNO/U/tIkKIRRtj3Cy+GDcCxRfxJkNgJDM9nb9uOZVD7l+C6ortsnG+7AzLbGweLbHR5lRhOsksne8Pki2frlpMDTjxmE9yVAxLefLvr2HGqdVu1wxBDv6UgYUYG+tfg6vkLgK7Q2Ov9NwR2cuukexLBl0F3oD5+QDzAAB0S2ctDH2YvYSoF1b43VRv5HdjC7YhjBhM BXJwr6gzqTNoZms/qHwny3S/3KvMOq7IHKCiAP0WWuZBgUcxRUKlCxklzv1DK0A+5KPS+dhoclMqctrj0zogaef9oCSGc/3ZSMHdMKVG366aVNlZ/5TO/OrmU6alI7WSaP0DIxugdJw5VpVJqeLJ0A2JQ24R2R9vB4TwMoY2WRP4OA82gpv2BZ0GH2GlK7kmGlG+E5ZXnwFURKkcpAsyit8ADSNZXzmQ2j5m3mMlqxhlC2xbhMhia1dwcGaVOvpHa0vjjOOrfVncgRSYCF7PyLpZtxc69J3SSgFctEKwXWPPk3e5V0E1XD/EEtH/1HHuF9KVnSg14qNMlK9Pfuk8uudbTNIApt2Nwlemn29VEdPKO/TndUr8/bbv1MBqRfFntgkEScv1JKBCTO1IpuWsfxI6brPo8IZZ2+ayzqPRWHRsSzZq3mALL7OFXwivhzcb0pV9IvvMNSj5YV4dD4zasKTJwW89W8DcXhf7LLsgFwn9h0KSocifZTS1goty24490etNTQsVM BavyFSkGDatOqg2zxzCeG2OQFV80ZE843NNWPCxex75utnixXRcaJTsJ3L6jYUz3F017El9ZLTmH5jnBD67Y1dbjtu+RLFAKH5CjixbbXUaOo8M227tsB1MI2zYRkxWMTctUWhoLilmy/TA/ajJEhUCw+uSaX9cto5lsl4u86e0Z51nWVBQZXlmZsmgzN3wpXD+vDfEeAuZh6ZcZQqlFjKjvG96Kv+QEU8UqKuprz9ZClyaexSlSia0j1Jj8jJ2ooBFYbYJ02JCt2kgP5xMNIHdgZeEPh02psxomuo1K1WrLl3HZR6WWH8QKFVfAApj+tf5YbCRG0L+3w9LFtJ49YpXipJilw5SUbpnG7OFc19925kqotaEUOP4o8yieBwwbCA1JPrXf1JNPRhedYluK31yKGyaqrIrRc8QolszEfbke9SGzfVI5C7czdHFLTYTkRdDKWoIpLJ71eIuQpBHumNpOfUm5CnhiIVl33c5JH04mAJHcmm1E2BnXaIEwsCe1QlppzeeTM m40VPzHddMjIpcS1vWxYMrnSZZVeiYKa4KSWgWo91tCzer/Gyzphi8y39v2zCAjHckmXfIfL2HQp7feL8p9PJAxGokq8w/eCDkZSczCc3icws3QOrZY6ZEt9SbemEBfPa5Jt53bas7x6CsLnGuHWpIwFFzBsrLQ/0WDVd0v8TH8Iqbhpx7luHTspzwwaROR7g0LRWZr6yLnyhszaxkE5LNGjtROemIZZJLkf8/URDZREXghZm/5n7b0kK0QRbV72bECN1S+Ou8NVf+y026ct9N6ZNz2FJ79NVe68umMZCRLk4ag9tv/SDalvWwgOT+IFObZUkZte62ZbYoxa4kj6yXN/o10IHWGqBVptXVdbEkEBjeKK7jzKrTuMoT14CR88dGIFGpLS1Wo41p1ae/ne7UFhkuQnbTLNkzxkUjr76tbkay4uygQvOVm+fRxX9Xr/gM7YTjZXPQzONGTsJnQqlBUdJo0RfDKPL7Kma6o5N/ZPonR2gokApjnyLTgthN7/ulzv+jSaM k6I0kG8VDq/q43YSDdEiho4nT5uIpL/aAu+SX9LAld42Uo9A3BzzD5eIRNnoaL2iZlicauoi65/ivXUI3LtYYvF9eBAQo9raQm8KTAtp+V5faT+dRMmza+L4J7avuZ1ES1sxyouKvSoIJEvsLYaGSS35QDfUoRi0p4XhVmJfLalMU58qd0lWuqXd4WnTDDlSYUpL0lPh5HObY8mnd3VhCwDSvAVBt6e3RXWN5bPnnUXBtbOzzA4H5YARiM/ClxyK+in3Q3wCY71T2d+iIPUMv0Qat1hz292lxj6pw67iPt18d7QgUqRvUs0LpXp1f2nc1XP14MpKIbCb/UqHKlLrmwHhllnMmojDz1msU1CTb5WeL3OfZW3youdRV+N0jTMYioNrCR5tKgBnsCvPfFQ+EEcrBcc5AS62B6RWXtpgOpj/JBBxgmUMZGkU7XBdLepL0IvzUnzJO7rsJmTPKHdYlzMhqCprF4LH9n9g3ICcugz9/DPWxj5dbIJ7KdJwi37iowLf5cynM 2OyAubMoviC10YmrqhnB8f7NQDEsunUW6vNICnHnZzrqIJ9AcARtVoyVaF+O6GeaFRu7bnCuSDsE/x+nCBHuk65Qs8qsjbWBejTBzIUtn9wrrfsyzX5C4xMuECTY4LxHTCFDCxFhulTmdMW0CQKUIoybd2m7Lkb0UTRNrzqry6BJO40qfLxggHNFlkQddRtuHLVQh5s3QCIXK83s1u9Jx7yes8V23Pos4lsNlxepa4Iuxn9WMSmPTFGu90VOeHC/w2yU9OFqalS0WqGb3YtOiOssAX58TFsgh2fVO9Lnk7Q6TdijiziMZcEfGISI9yB33yl7vezsGZZJqBgnfQElXgo5SX6XOaGA/TfKyCLfpdXGwncdaodk8fLdQglCMv/RibZZEZRbmN8Mw4d2p0l15zKelmadqfSaJ6y5nSf3JUIua6yeJrj13f8rGE+e1vV86fIh6ww9ZD/8w9aq6Wsqnip8KSr8pPitoePtgsj/NzT5j1+VXDvRdTBn8RZtlWbGzKlJSilSM kiyyaXc0+RiCJ/Phs/IC8cbz6IOxbaVqwWF2GMT+Vyydk8ANJdkSZ1FvDFJcuHmWKNRXqnGUDdRtSFMSDNEFMy6qzPd9ZzjS8Mf10fPutE/9mNckD8XGSAa6j8a0d6fYb7UdYi68FzMFwarAxi487vx9T/xcDpaRGeXz7KifiKeJ988YtPqHffs9mY1QJUzzLKMDhOiuzfroS4k40o9Pki/crNuqd9/5Tw5COVgOetzse8skSs0wHyv1/5GjXWemVL349vEhHn/P0L8N9ur2/W7934zwnEr777+arfz/GZT/LVz5+eS3f989fjq+/8/NG+fte+t/v2O3f9e/vfbt93/W/cvu/637j9+PHPvx1wiC4p3QMA";(function a(){const params=new URLSearchParams(window.location.search),supportsDecompression=typeof DecompressionStream!=='undefined',resize=debouncM e(()=>handleResize());let dim=Math.min(window.innerWidth,window.innerHeight),loop=supportsDecompression&¶ms.get('loop')!==null,image,ascii,overview,mode,decompressed=false;window.onresize=resize;window.onload=function(){mode=getMode();decompressAscii();image=document.querySelector(".image");ascii=document.querySelector(".ascii");overview=document.querySelector(".overview");(mode==='ascii'?ascii:image).classList.add('fadeIn');handleResize();if(loop){let interval=parseInt(params.get('loop'),10)||5;setInterval(()=M >{mode=mode==='ascii'?'image':'ascii';transition()},interval*1000)}document.addEventListener("keypress",(event)=>{const keyName=event.key.toLowerCase();if(keyName==='a'&&mode!=='ascii'&&supportsDecompression){mode='ascii';transition()}else if(keyName==='i'&&mode!=='image'){mode='image';transition()}else if(keyName==='m'){overview.classList.toggle('hidden')}},false)};function decompressAscii(){if(mode==='ascii'&&!decompressed&&supportsDecompression){decompress(new Uint8Array(base64ToArrayBuffer(img)),'gzip').then(s=M >{decompressed=true;reconstructPreformatted(JSON.parse(s))})}}function debounce(a){let timer;return(...args)=>{clearTimeout(timer);timer=setTimeout(()=>{a.apply(this,args)},250)}}function getMode(){let modeParam=params.get("mode")??'';if(!/^(ascii|image)$/i.test(modeParam)||!supportsDecompression){if(dim>800&&supportsDecompression)modeParam='ascii';else modeParam='image'}return modeParam}function handleResize(){dim=Math.min(window.innerWidth,window.innerHeight);const newMode=getMode(),changed=mode!==newMode;if(chanM ged){mode=newMode;transition()}let fontSize=params.get("fontSize"),brightness=params.get("brightness");if(!fontSize){fontSize='0.62vmin'}ascii.style.setProperty('font-size',fontSize);if(brightness)ascii.style.setProperty('filter',`brightness(${brightness})`)}function transition(){decompressAscii();const to=mode==='ascii'?ascii:image;const from=mode==='ascii'?image:ascii;from.classList.remove("fadeIn");from.classList.add("fadeOut");to.classList.remove("fadeOut");to.classList.add("fadeIn")}function reconstructPreformM atted(a){let str='';for(let y=0;y<a.colorMatrix.length;y++){let colorRow=a.colorMatrix[y];let charRow=a.charMatrix[y];for(let x=0;x<colorRow.length;x++){let cls='';str+=`<span class="${cls}"style="color:#${a.colorMap[colorRow[x]]}">${decodeChar(a.charMap[charRow[x]])}</span>`}str+='<br>'}document.querySelector('pre').innerHTML=str}function decodeChar(a){return a===' '?' ':a}function base64ToArrayBuffer(a){const binary_string=window.atob(a);const len=binary_string.length;const bytes=new Uint8Array(len);for(let M i=0;i<len;i++){bytes[i]=binary_string.charCodeAt(i)}return bytes.buffer}function decompress(b,c){const cs=new DecompressionStream(c);const writer=cs.writable.getWriter();writer.write(b);writer.close();return new Response(cs.readable).arrayBuffer().then(function(a){return new TextDecoder().decode(a)})}})();</script> <div class='image'><img src="data:image/webp;base64,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"/></div> <div class='ascii' style="font-size:4pt;"><pre></pre></div> <div class='overview hidden'> <div class='overview-text'> <h1 title="Twitter: @timechainord
Discord: https://discord.gg/7QKWjKCKc6">🕰 Timechain Collection 🕰</h1> <h3>₿itcoin Inscriptions</h3> <p>Series 2 - The Timekeepers</p> <p>Item: 83 of 99</p> >Sat: 4998407347622 (₿lock 999 - Jan 19, 2009)</p> <p>Type: Current Era</p> <p>Generated: 2023-03-29T01:03:52.930Z</p> text/plain;charset=utf-8 "name": "xlm.sats" Bj@=:ETH.ETH:0xbCA634Cb87D6d509012d4D7e753431c713911AcB:21936123::0 text/plain;charset=utf-8 "My BTC can stay in cold storage longer than your banks can stay solvent." Honorable Former Senator Aj?=:ETH.ETH:0x54F7dcB975397312A8B2f63884Cf4874B5F4C205:4532046::0 FjDOUT:5897CAC4BCC91F8D05E970686D6EA41526FAEE408002058983FC196948004B7D FjDOUT:6434F601342550964D5BC13963B697A2A1D082778764ED61453AEEF2E35CC644 FjDOUT:A22A95232A6305931573D384FD314DD2F5279361792670CD4165CE907E525993 FjDOUT:D71F7703ABEEA51AEEE663EEEC10F52DF4AB57B58362AC8813E3BA71CC1F2C95 text/plain;charset=utf-8 2{ "p": "sns", "op": "reg", "name": "bbrown.sats" }h! text/plain;charset=utf-8 :{ "p": "sns", "op": "reg", "name": "FoxCorporation.sats" }h! text/plain;charset=utf-8 6{ "p": "sns", "op": "reg", "name": "broadridge.sats" }h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Grimoire</text><text x="10" y="40" class="base">Dragonskin Armor</text><text x="10" y="60" class="base">"Soul Whisper" Crown of Perfection +1</text><text x="10" y="80" class="base">Hard Leather Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="1L 0" y="120" class="base">Heavy Gloves</text><text x="10" y="140" class="base">"Pain Tear" Amulet of Vitriol</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Warhammer</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">Divine Hood</text><text x="10" y="80" class="base">Leather Belt of Enlightenment</text><text x="10" y="100" class="base">Heavy Boots</text><text x="10" y="12L 0" class="base">"Oblivion Bite" Demon's Hands of Enlightenment +1</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">"Hypnotic Glow" Scimitar of Protection</text><text x="10" y="40" class="base">"Armageddon Moon" Ring Mail of Detection +1</text><text x="10" y="60" class="base">Full Helm</text><text x="10" y="80" class="base">War Belt</text><text x="10" y="100" class="base">"Rage MoL on" Silk Slippers of Detection</text><text x="10" y="120" class="base">Wool Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">"Rapture Instrument" Platinum Ring of Power +1</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Quarterstaff</text><text x="10" y="40" class="base">Hard Leather Armor of Protection</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">"Hypnotic Tear" Brightsilk Sash of Protection</text><text x="10" y="100" class="base">DemonhidL e Boots</text><text x="10" y="120" class="base">"Onslaught Song" Dragonskin Gloves of Protection +1</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Maul</text><text x="10" y="40" class="base">Leather Armor of Anger</text><text x="10" y="60" class="base">Linen Hood</text><text x="10" y="80" class="base">"Kraken Peak" Silk Sash of Anger +1</text><text x="10" y="100" class="base">Dragonskin Boots</text><text x="10"L y="120" class="base">Studded Leather Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Platinum Ring of Vitriol</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Mace of Skill</text><text x="10" y="40" class="base">Holy Chestplate of Rage</text><text x="10" y="60" class="base">Hood</text><text x="10" y="80" class="base">"Loath Form" Wool Sash of Rage +1</text><text x="10" y="100" class="base">Studded Leather Boots of Rage</teL xt><text x="10" y="120" class="base">Hard Leather Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Titanium Ring of the Fox</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club of Perfection</text><text x="10" y="40" class="base">Ornate Chestplate of Fury</text><text x="10" y="60" class="base">Ancient Helm</text><text x="10" y="80" class="base">Linen Sash</text><text x="10" y="100" class="base">Hard Leather Boots of Fury</text><text x=L "10" y="120" class="base">Leather Gloves</text><text x="10" y="140" class="base">Necklace</text><text x="10" y="160" class="base">Gold Ring of Detection</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana of Brilliance</text><text x="10" y="40" class="base">"Agony Form" Plate Mail of Vitriol</text><text x="10" y="60" class="base">Ornate Helm</text><text x="10" y="80" class="base">Sash</text><text x="10" y="100" class="base">Leather Boots of Vitriol</text><text L x="10" y="120" class="base">Divine Gloves</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring of Reflection</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Falchion of Enlightenment</text><text x="10" y="40" class="base">"Apocalypse Sun" Chain Mail of the Fox +1</text><text x="10" y="60" class="base">Great Helm</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Divine Slippers of L the Fox</text><text x="10" y="120" class="base">Silk Gloves</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">"Rage Grasp" Bronze Ring of the Twins</text></svg>h! text/html;charset=utf-8 <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no" /> <link rel="preconnect" href="https://fonts.googleapis.com"> <title>LOOT for Taproot</title> box-sizing: border-box; font-size: 1.15rem; font-family: monospace; background-color: black; max-width: 70ch; padding: 3rem 1rem; line-height: 1.25; text-decoration: none !important; a.active:before { a.active:after { font-size: 2rem; font-size: 1.5rem; display: block; margin-bottom: 10px; line-height: 1.25; height: 1.8rem; font-size: 1.15rem; border: 1px solid white; margin-bottom: 10px; display: none; position: fixed; background-color: black; height: 100vh; display: none; position: fixed; box-sizing: border-box; transform: translate(-50%, -50%); max-width: 560px; max-height: 100vh; background-color: white; padding: 20px; text-align: center; border-radius: 25px; border: 2px solid var(--primary-color); .modal-content { overflow-y: auto; max-height: 85vh; background-color: white; text-align: center; border: transparent; display: none; border: 1px solid white; padding: 1rem; border-radius: 1rem; word-wrap: break-word; text-align: center; position: relative; text-align: left; .checking_mempool, .checking_mempool span { color: lightgreen; display: flex; justify-content: space-around; max-width: 6rem; margin: 0px 0.5rem; text-align: center; cursor: pointer; background-color: grey; border: 1px solid white; padding: .3rem; background-coloM .safari_warning { display: none; <script>!function (t) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else { ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).buffer = t() } }(function () { return function () { return function t(r, e, n) { function i(f, u) { if (!e[f]) { if (!r[f]) { vM ar s = "function" == typeof require && require; if (!u && s) return s(f, !0); if (o) return o(f, !0); var h = new Error("Cannot find module '" + f + "'"); throw h.code = "MODULE_NOT_FOUND", h } var a = e[f] = { exports: {} }; r[f][0].call(a.exports, function (t) { return i(r[f][1][t] || t) }, a, a.exports, t, r, e, n) } return e[f].exports } for (var o = "function" == typeof require && require, f = 0; f < n.length; f++)i(n[f]); return i } }()({ 1: [function (t, r, e) { "use strict"; e.byteLength = function (t) { vaM r r = h(t), e = r[0], n = r[1]; return 3 * (e + n) / 4 - n }, e.toByteArray = function (t) { var r, e, n = h(t), f = n[0], u = n[1], s = new o(function (t, r, e) { return 3 * (r + e) / 4 - e }(0, f, u)), a = 0, c = u > 0 ? f - 4 : f; for (e = 0; e < c; e += 4)r = i[t.charCodeAt(e)] << 18 | i[t.charCodeAt(e + 1)] << 12 | i[t.charCodeAt(e + 2)] << 6 | i[t.charCodeAt(e + 3)], s[a++] = r >> 16 & 255, s[a++] = r >> 8 & 255, s[a++] = 255 & r; 2 === u && (r = i[t.charCodeAt(e)] << 2 | i[t.charCodeAt(e + 1)] >> 4, s[a++] =M 255 & r); 1 === u && (r = i[t.charCodeAt(e)] << 10 | i[t.charCodeAt(e + 1)] << 4 | i[t.charCodeAt(e + 2)] >> 2, s[a++] = r >> 8 & 255, s[a++] = 255 & r); return s }, e.fromByteArray = function (t) { for (var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; f < u; f += 16383)o.push(a(t, f, f + 16383 > u ? u : f + 16383)); 1 === i ? (r = t[e - 1], o.push(n[r >> 2] + n[r << 4 & 63] + "==")) : 2 === i && (r = (t[e - 2] << 8) + t[e - 1], o.push(n[r >> 10] + n[r >> 4 & 63] + n[r << 2 & 63] + "=")); return o.join(""M ) }; for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = 0, s = f.length; u < s; ++u)n[u] = f[u], i[f.charCodeAt(u)] = u; function h(t) { var r = t.length; if (r % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var e = t.indexOf("="); return -1 === e && (e = r), [e, e === r ? 0 : 4 - e % 4] } function a(t, r, e) { for (var i, o, f = [], u = r; u < e; u += 3)i = (t[u] << 16 & 1671168M 0) + (t[u + 1] << 8 & 65280) + (255 & t[u + 2]), f.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]); return f.join("") } i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 }, {}], 2: [function (t, r, e) { (function (r) { "use strict"; var n = t("base64-js"), i = t("ieee754"); e.Buffer = r, e.SlowBuffer = function (t) { +t != t && (t = 0); return r.alloc(+t) }, e.INSPECT_MAX_BYTES = 50; var o = 2147483647; function f(t) { if (t > o) throw new RangeError('The value "' + t + '" is invalid fM or option "size"'); var e = new Uint8Array(t); return e.__proto__ = r.prototype, e } function r(t, r, e) { if ("number" == typeof t) { if ("string" == typeof r) throw new TypeError('The "string" argument must be of type string. Received type number'); return h(t) } return u(t, r, e) } function u(t, e, n) { if ("string" == typeof t) return function (t, e) { "string" == typeof e && "" !== e || (e = "utf8"); if (!r.isEncoding(e)) throw new TypeError("Unknown encoding: " + e); var n = 0 | p(t, e), i = f(n), o = i.writeM (t, e); o !== n && (i = i.slice(0, o)); return i }(t, e); if (ArrayBuffer.isView(t)) return a(t); if (null == t) throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t); if (j(t, ArrayBuffer) || t && j(t.buffer, ArrayBuffer)) return function (t, e, n) { if (e < 0 || t.byteLength < e) throw new RangeError('"offset" is outside of buffer bounds'); if (t.byteLength < e + (n || 0)) throw new RangeError('"length" is outside of buffer boM unds'); var i; i = void 0 === e && void 0 === n ? new Uint8Array(t) : void 0 === n ? new Uint8Array(t, e) : new Uint8Array(t, e, n); return i.__proto__ = r.prototype, i }(t, e, n); if ("number" == typeof t) throw new TypeError('The "value" argument must not be of type number. Received type number'); var i = t.valueOf && t.valueOf(); if (null != i && i !== t) return r.from(i, e, n); var o = function (t) { if (r.isBuffer(t)) { var e = 0 | c(t.length), n = f(e); return 0 === n.length ? n : (t.copy(n, 0, 0, e), n) } ifM (void 0 !== t.length) return "number" != typeof t.length || F(t.length) ? f(0) : a(t); if ("Buffer" === t.type && Array.isArray(t.data)) return a(t.data) }(t); if (o) return o; if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t[Symbol.toPrimitive]) return r.from(t[Symbol.toPrimitive]("string"), e, n); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t) } function s(t) { if ("number" !M = typeof t) throw new TypeError('"size" argument must be of type number'); if (t < 0) throw new RangeError('The value "' + t + '" is invalid for option "size"') } function h(t) { return s(t), f(t < 0 ? 0 : 0 | c(t)) } function a(t) { for (var r = t.length < 0 ? 0 : 0 | c(t.length), e = f(r), n = 0; n < r; n += 1)e[n] = 255 & t[n]; return e } function c(t) { if (t >= o) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + o.toString(16) + " bytes"); return 0 | t } function p(t, e) { if (rM .isBuffer(t)) return t.length; if (ArrayBuffer.isView(t) || j(t, ArrayBuffer)) return t.byteLength; if ("string" != typeof t) throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t); var n = t.length, i = arguments.length > 2 && !0 === arguments[2]; if (!i && 0 === n) return 0; for (var o = !1; ;)switch (e) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": return P(t).length; case "ucs2": case "ucs-2": case "utf16le"M : case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return k(t).length; default: if (o) return i ? -1 : P(t).length; e = ("" + e).toLowerCase(), o = !0 } } function l(t, r, e) { var n = t[r]; t[r] = t[e], t[e] = n } function y(t, e, n, i, o) { if (0 === t.length) return -1; if ("string" == typeof n ? (i = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), F(n = +n) && (n = o ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) { if (o) return -1; M n = t.length - 1 } else if (n < 0) { if (!o) return -1; n = 0 } if ("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e)) return 0 === e.length ? -1 : g(t, e, n, i, o); if ("number" == typeof e) return e &= 255, "function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : g(t, [e], n, i, o); throw new TypeError("val must be string, number or Buffer") } function g(t, r, e, n, i) { var o, f = 1, u = t.length, s = r.length; iM f (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) { if (t.length < 2 || r.length < 2) return -1; f = 2, u /= 2, s /= 2, e /= 2 } function h(t, r) { return 1 === f ? t[r] : t.readUInt16BE(r * f) } if (i) { var a = -1; for (o = e; o < u; o++)if (h(t, o) === h(r, -1 === a ? 0 : o - a)) { if (-1 === a && (a = o), o - a + 1 === s) return a * f } else -1 !== a && (o -= o - a), a = -1 } else for (e + s > u && (e = u - s), o = e; o >= 0; o--) { for (var cM = !0, p = 0; p < s; p++)if (h(t, o + p) !== h(r, p)) { c = !1; break } if (c) return o } return -1 } function w(t, r, e, n) { e = Number(e) || 0; var i = t.length - e; n ? (n = Number(n)) > i && (n = i) : n = i; var o = r.length; n > o / 2 && (n = o / 2); for (var f = 0; f < n; ++f) { var u = parseInt(r.substr(2 * f, 2), 16); if (F(u)) return f; t[e + f] = u } return f } function d(t, r, e, n) { return $(P(r, t.length - e), t, e, n) } function b(t, r, e, n) { return $(function (t) { for (var r = [], e = 0; e < t.lM ength; ++e)r.push(255 & t.charCodeAt(e)); return r }(r), t, e, n) } function m(t, r, e, n) { return b(t, r, e, n) } function E(t, r, e, n) { return $(k(r), t, e, n) } function v(t, r, e, n) { return $(function (t, r) { for (var e, n, i, o = [], f = 0; f < t.length && !((r -= 2) < 0); ++f)e = t.charCodeAt(f), n = e >> 8, i = e % 256, o.push(i), o.push(n); return o }(r, t.length - e), t, e, n) } function B(t, r, e) { return 0 === r && e === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(r, e)) } function A(tM , r, e) { e = Math.min(t.length, e); for (var n = [], i = r; i < e;) { var o, f, u, s, h = t[i], a = null, c = h > 239 ? 4 : h > 223 ? 3 : h > 191 ? 2 : 1; if (i + c <= e) switch (c) { case 1: h < 128 && (a = h); break; case 2: 128 == (192 & (o = t[i + 1])) && (s = (31 & h) << 6 | 63 & o) > 127 && (a = s); break; case 3: o = t[i + 1], f = t[i + 2], 128 == (192 & o) && 128 == (192 & f) && (s = (15 & h) << 12 | (63 & o) << 6 | 63 & f) > 2047 && (s < 55296 || s > 57343) && (a = s); break; case 4: o = t[i + 1], f = t[iM + 2], u = t[i + 3], 128 == (192 & o) && 128 == (192 & f) && 128 == (192 & u) && (s = (15 & h) << 18 | (63 & o) << 12 | (63 & f) << 6 | 63 & u) > 65535 && s < 1114112 && (a = s) }null === a ? (a = 65533, c = 1) : a > 65535 && (a -= 65536, n.push(a >>> 10 & 1023 | 55296), a = 56320 | 1023 & a), n.push(a), i += c } return function (t) { var r = t.length; if (r <= I) return String.fromCharCode.apply(String, t); var e = "", n = 0; for (; n < r;)e += String.fromCharCode.apply(String, t.slice(n, n += I)); return e }(n) }M e.kMaxLength = o, r.TYPED_ARRAY_SUPPORT = function () { try { var t = new Uint8Array(1); return t.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === t.foo() } catch (t) { return !1 } }(), r.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(r.prototype, "paM rent", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.buffer } }), Object.defineProperty(r.prototype, "offset", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.byteOffset } }), "undefined" != typeof Symbol && null != Symbol.species && r[Symbol.species] === r && Object.defineProperty(r, Symbol.species, { value: null, configurable: !0, enumerable: !1, writable: !1 }), r.poolSize = 8192, r.from = function (t, r, e) { return u(t, r, e) }, r.prototype.__proto__ = Uint8ArrayM .prototype, r.__proto__ = Uint8Array, r.alloc = function (t, r, e) { return function (t, r, e) { return s(t), t <= 0 ? f(t) : void 0 !== r ? "string" == typeof e ? f(t).fill(r, e) : f(t).fill(r) : f(t) }(t, r, e) }, r.allocUnsafe = function (t) { return h(t) }, r.allocUnsafeSlow = function (t) { return h(t) }, r.isBuffer = function (t) { return null != t && !0 === t._isBuffer && t !== r.prototype }, r.compare = function (t, e) { if (j(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), j(e, Uint8Array) && (eM = r.from(e, e.offset, e.byteLength)), !r.isBuffer(t) || !r.isBuffer(e)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (t === e) return 0; for (var n = t.length, i = e.length, o = 0, f = Math.min(n, i); o < f; ++o)if (t[o] !== e[o]) { n = t[o], i = e[o]; break } return n < i ? -1 : i < n ? 1 : 0 }, r.isEncoding = function (t) { switch (String(t).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "M ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, r.concat = function (t, e) { if (!Array.isArray(t)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === t.length) return r.alloc(0); var n; if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n)e += t[n].length; var i = r.allocUnsafe(e), o = 0; for (n = 0; n < t.length; ++n) { var f = t[n]; if (j(f, Uint8Array) && (f = r.from(f)), !r.isBuffer(f)) throw new TypeError('"list" argument must be an Array oM f Buffers'); f.copy(i, o), o += f.length } return i }, r.byteLength = p, r.prototype._isBuffer = !0, r.prototype.swap16 = function () { var t = this.length; if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var r = 0; r < t; r += 2)l(this, r, r + 1); return this }, r.prototype.swap32 = function () { var t = this.length; if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var r = 0; r < t; r += 4)l(this, r, r + 3), l(this, r + 1, r + 2); returM n this }, r.prototype.swap64 = function () { var t = this.length; if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var r = 0; r < t; r += 8)l(this, r, r + 7), l(this, r + 1, r + 6), l(this, r + 2, r + 5), l(this, r + 3, r + 4); return this }, r.prototype.toString = function () { var t = this.length; return 0 === t ? "" : 0 === arguments.length ? A(this, 0, t) : function (t, r, e) { var n = !1; if ((void 0 === r || r < 0) && (r = 0), r > this.length) return ""; if ((void 0 === M e || e > this.length) && (e = this.length), e <= 0) return ""; if ((e >>>= 0) <= (r >>>= 0)) return ""; for (t || (t = "utf8"); ;)switch (t) { case "hex": return T(this, r, e); case "utf8": case "utf-8": return A(this, r, e); case "ascii": return U(this, r, e); case "latin1": case "binary": return R(this, r, e); case "base64": return B(this, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return _(this, r, e); default: if (n) throw new TypeError("Unknown encoding: " + t); t = (t + "").toLowerCaseM (), n = !0 } }.apply(this, arguments) }, r.prototype.toLocaleString = r.prototype.toString, r.prototype.equals = function (t) { if (!r.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); return this === t || 0 === r.compare(this, t) }, r.prototype.inspect = function () { var t = "", r = e.INSPECT_MAX_BYTES; return t = this.toString("hex", 0, r).replace(/(.{2})/g, "$1 ").trim(), this.length > r && (t += " ... "), "<Buffer " + t + ">" }, r.prototype.compare = function (t, e, n, i, o) { if (j(t, Uint8Array)M && (t = r.from(t, t.offset, t.byteLength)), !r.isBuffer(t)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t); if (void 0 === e && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === i && (i = 0), void 0 === o && (o = this.length), e < 0 || n > t.length || i < 0 || o > this.length) throw new RangeError("out of range index"); if (i >= o && e >= n) return 0; if (i >= o) return -1; if (e >= n) return 1; if (this === t) return 0; for (var f = (o >>M >= 0) - (i >>>= 0), u = (n >>>= 0) - (e >>>= 0), s = Math.min(f, u), h = this.slice(i, o), a = t.slice(e, n), c = 0; c < s; ++c)if (h[c] !== a[c]) { f = h[c], u = a[c]; break } return f < u ? -1 : u < f ? 1 : 0 }, r.prototype.includes = function (t, r, e) { return -1 !== this.indexOf(t, r, e) }, r.prototype.indexOf = function (t, r, e) { return y(this, t, r, e, !0) }, r.prototype.lastIndexOf = function (t, r, e) { return y(this, t, r, e, !1) }, r.prototype.write = function (t, r, e, n) { if (void 0 === r) n = "utf8M ", e = this.length, r = 0; else if (void 0 === e && "string" == typeof r) n = r, e = this.length, r = 0; else { if (!isFinite(r)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); r >>>= 0, isFinite(e) ? (e >>>= 0, void 0 === n && (n = "utf8")) : (n = e, e = void 0) } var i = this.length - r; if ((void 0 === e || e > i) && (e = i), t.length > 0 && (e < 0 || r < 0) || r > this.length) throw new RangeError("Attempt to write outside buffer bounds"); n || (n = "utf8"); for (varM o = !1; ;)switch (n) { case "hex": return w(this, t, r, e); case "utf8": case "utf-8": return d(this, t, r, e); case "ascii": return b(this, t, r, e); case "latin1": case "binary": return m(this, t, r, e); case "base64": return E(this, t, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return v(this, t, r, e); default: if (o) throw new TypeError("Unknown encoding: " + n); n = ("" + n).toLowerCase(), o = !0 } }, r.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.sliM ce.call(this._arr || this, 0) } }; var I = 4096; function U(t, r, e) { var n = ""; e = Math.min(t.length, e); for (var i = r; i < e; ++i)n += String.fromCharCode(127 & t[i]); return n } function R(t, r, e) { var n = ""; e = Math.min(t.length, e); for (var i = r; i < e; ++i)n += String.fromCharCode(t[i]); return n } function T(t, r, e) { var n = t.length; (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); for (var i = "", o = r; o < e; ++o)i += N(t[o]); return i } function _(t, r, e) { for (var n = t.sliceM (r, e), i = "", o = 0; o < n.length; o += 2)i += String.fromCharCode(n[o] + 256 * n[o + 1]); return i } function L(t, r, e) { if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint"); if (t + r > e) throw new RangeError("Trying to access beyond buffer length") } function S(t, e, n, i, o, f) { if (!r.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (e > o || e < f) throw new RangeError('"value" argument is out of bounds'); if (n + i > t.length) throw new RangeError("IndeM x out of range") } function O(t, r, e, n, i, o) { if (e + n > t.length) throw new RangeError("Index out of range"); if (e < 0) throw new RangeError("Index out of range") } function C(t, r, e, n, o) { return r = +r, e >>>= 0, o || O(t, 0, e, 4), i.write(t, r, e, n, 23, 4), e + 4 } function x(t, r, e, n, o) { return r = +r, e >>>= 0, o || O(t, 0, e, 8), i.write(t, r, e, n, 52, 8), e + 8 } r.prototype.slice = function (t, e) { var n = this.length; (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e = void 0M === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t && (e = t); var i = this.subarray(t, e); return i.__proto__ = r.prototype, i }, r.prototype.readUIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256);)n += this[t + o] * i; return n }, r.prototype.readUIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t + --r], i = 1; r > 0 && (i *= 256);)n += this[t + --r] * i; return M n }, r.prototype.readUInt8 = function (t, r) { return t >>>= 0, r || L(t, 1, this.length), this[t] }, r.prototype.readUInt16LE = function (t, r) { return t >>>= 0, r || L(t, 2, this.length), this[t] | this[t + 1] << 8 }, r.prototype.readUInt16BE = function (t, r) { return t >>>= 0, r || L(t, 2, this.length), this[t] << 8 | this[t + 1] }, r.prototype.readUInt32LE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3] }, r.prototype.reM adUInt32BE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]) }, r.prototype.readIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256);)n += this[t + o] * i; return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n }, r.prototype.readIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || L(t, r, this.length); for (var n = r, i = 1, o = this[t + --n]; n >M 0 && (i *= 256);)o += this[t + --n] * i; return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o }, r.prototype.readInt8 = function (t, r) { return t >>>= 0, r || L(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] }, r.prototype.readInt16LE = function (t, r) { t >>>= 0, r || L(t, 2, this.length); var e = this[t] | this[t + 1] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt16BE = function (t, r) { t >>>= 0, r || L(t, 2, this.length); var e = this[t + 1] | this[t] << 8; returnM 32768 & e ? 4294901760 | e : e }, r.prototype.readInt32LE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24 }, r.prototype.readInt32BE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3] }, r.prototype.readFloatLE = function (t, r) { return t >>>= 0, r || L(t, 4, this.length), i.read(this, t, !0, 23, 4) }, r.prototype.readFloatBE = function (t, r) { return M t >>>= 0, r || L(t, 4, this.length), i.read(this, t, !1, 23, 4) }, r.prototype.readDoubleLE = function (t, r) { return t >>>= 0, r || L(t, 8, this.length), i.read(this, t, !0, 52, 8) }, r.prototype.readDoubleBE = function (t, r) { return t >>>= 0, r || L(t, 8, this.length), i.read(this, t, !1, 52, 8) }, r.prototype.writeUIntLE = function (t, r, e, n) { (t = +t, r >>>= 0, e >>>= 0, n) || S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); var i = 1, o = 0; for (this[r] = 255 & t; ++o < e && (i *= 256);)this[r + o] = t / i M & 255; return r + e }, r.prototype.writeUIntBE = function (t, r, e, n) { (t = +t, r >>>= 0, e >>>= 0, n) || S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); var i = e - 1, o = 1; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)this[r + i] = t / o & 255; return r + e }, r.prototype.writeUInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 1, 255, 0), this[r] = 255 & t, r + 1 }, r.prototype.writeUInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 65535, 0), this[r] = 255M & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeUInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 65535, 0), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeUInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 4294967295, 0), this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = 255 & t, r + 4 }, r.prototype.writeUInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 4294967295, 0), tM his[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeIntLE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { var i = Math.pow(2, 8 * e - 1); S(this, t, r, e, i - 1, -i) } var o = 0, f = 1, u = 0; for (this[r] = 255 & t; ++o < e && (f *= 256);)t < 0 && 0 === u && 0 !== this[r + o - 1] && (u = 1), this[r + o] = (t / f >> 0) - u & 255; return r + e }, r.prototype.writeIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { var i = Math.pow(2, 8 * e M - 1); S(this, t, r, e, i - 1, -i) } var o = e - 1, f = 1, u = 0; for (this[r + o] = 255 & t; --o >= 0 && (f *= 256);)t < 0 && 0 === u && 0 !== this[r + o + 1] && (u = 1), this[r + o] = (t / f >> 0) - u & 255; return r + e }, r.prototype.writeInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 1, 127, -128), t < 0 && (t = 255 + t + 1), this[r] = 255 & t, r + 1 }, r.prototype.writeInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 32767, -32768), this[r] = 255 & t, this[M r + 1] = t >>> 8, r + 2 }, r.prototype.writeInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 2, 32767, -32768), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 2147483647, -2147483648), this[r] = 255 & t, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24, r + 4 }, r.prototype.writeInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || S(this, t, r, 4, 2147483647, -214M 7483648), t < 0 && (t = 4294967295 + t + 1), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeFloatLE = function (t, r, e) { return C(this, t, r, !0, e) }, r.prototype.writeFloatBE = function (t, r, e) { return C(this, t, r, !1, e) }, r.prototype.writeDoubleLE = function (t, r, e) { return x(this, t, r, !0, e) }, r.prototype.writeDoubleBE = function (t, r, e) { return x(this, t, r, !1, e) }, r.prototype.copy = function (t, e, n, i) { if (!r.isBufferM (t)) throw new TypeError("argument should be a Buffer"); if (n || (n = 0), i || 0 === i || (i = this.length), e >= t.length && (e = t.length), e || (e = 0), i > 0 && i < n && (i = n), i === n) return 0; if (0 === t.length || 0 === this.length) return 0; if (e < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RangeError("Index out of range"); if (i < 0) throw new RangeError("sourceEnd out of bounds"); i > this.length && (i = this.length), t.length - e < i - n && (i = t.M length - e + n); var o = i - n; if (this === t && "function" == typeof Uint8Array.prototype.copyWithin) this.copyWithin(e, n, i); else if (this === t && n < e && e < i) for (var f = o - 1; f >= 0; --f)t[f + e] = this[f + n]; else Uint8Array.prototype.set.call(t, this.subarray(n, i), e); return o }, r.prototype.fill = function (t, e, n, i) { if ("string" == typeof t) { if ("string" == typeof e ? (i = e, e = 0, n = this.length) : "string" == typeof n && (i = n, n = this.length), void 0 !== i && "string" != typeof i) M throw new TypeError("encoding must be a string"); if ("string" == typeof i && !r.isEncoding(i)) throw new TypeError("Unknown encoding: " + i); if (1 === t.length) { var o = t.charCodeAt(0); ("utf8" === i && o < 128 || "latin1" === i) && (t = o) } } else "number" == typeof t && (t &= 255); if (e < 0 || this.length < e || this.length < n) throw new RangeError("Out of range index"); if (n <= e) return this; var f; if (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), "number" == typeof t) for (f = e; fM < n; ++f)this[f] = t; else { var u = r.isBuffer(t) ? t : r.from(t, i), s = u.length; if (0 === s) throw new TypeError('The value "' + t + '" is invalid for argument "value"'); for (f = 0; f < n - e; ++f)this[f + e] = u[f % s] } return this }; var M = /[^+\/0-9A-Za-z-_]/g; function N(t) { return t < 16 ? "0" + t.toString(16) : t.toString(16) } function P(t, r) { var e; r = r || 1 / 0; for (var n = t.length, i = null, o = [], f = 0; f < n; ++f) { if ((e = t.charCodeAt(f)) > 55295 && e < 57344) { if (!i) { if (e > 56M 319) { (r -= 3) > -1 && o.push(239, 191, 189); continue } if (f + 1 === n) { (r -= 3) > -1 && o.push(239, 191, 189); continue } i = e; continue } if (e < 56320) { (r -= 3) > -1 && o.push(239, 191, 189), i = e; continue } e = 65536 + (i - 55296 << 10 | e - 56320) } else i && (r -= 3) > -1 && o.push(239, 191, 189); if (i = null, e < 128) { if ((r -= 1) < 0) break; o.push(e) } else if (e < 2048) { if ((r -= 2) < 0) break; o.push(e >> 6 | 192, 63 & e | 128) } else if (e < 65536) { if ((r -= 3) < 0) break; o.push(e >> 1M 2 | 224, e >> 6 & 63 | 128, 63 & e | 128) } else { if (!(e < 1114112)) throw new Error("Invalid code point"); if ((r -= 4) < 0) break; o.push(e >> 18 | 240, e >> 12 & 63 | 128, e >> 6 & 63 | 128, 63 & e | 128) } } return o } function k(t) { return n.toByteArray(function (t) { if ((t = (t = t.split("=")[0]).trim().replace(M, "")).length < 2) return ""; for (; t.length % 4 != 0;)t += "="; return t }(t)) } function $(t, r, e, n) { for (var i = 0; i < n && !(i + e >= r.length || i >= t.length); ++i)r[i + e] = t[i]; retM urn i } function j(t, r) { return t instanceof r || null != t && null != t.constructor && null != t.constructor.name && t.constructor.name === r.name } function F(t) { return t != t } }).call(this, t("buffer").Buffer) }, { "base64-js": 1, buffer: 2, ieee754: 3 }], 3: [function (t, r, e) { e.read = function (t, r, e, n, i) { var o, f, u = 8 * i - n - 1, s = (1 << u) - 1, h = s >> 1, a = -7, c = e ? i - 1 : 0, p = e ? -1 : 1, l = t[r + c]; for (c += p, o = l & (1 << -a) - 1, l >>= -a, a += u; a > 0; o = 256 * o + t[rM + c], c += p, a -= 8); for (f = o & (1 << -a) - 1, o >>= -a, a += n; a > 0; f = 256 * f + t[r + c], c += p, a -= 8); if (0 === o) o = 1 - h; else { if (o === s) return f ? NaN : 1 / 0 * (l ? -1 : 1); f += Math.pow(2, n), o -= h } return (l ? -1 : 1) * f * Math.pow(2, o - n) }, e.write = function (t, r, e, n, i, o) { var f, u, s, h = 8 * o - i - 1, a = (1 << h) - 1, c = a >> 1, p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, l = n ? 0 : o - 1, y = n ? 1 : -1, g = r < 0 || 0 === r && 1 / r < 0 ? 1 : 0; for (M r = Math.abs(r), isNaN(r) || r === 1 / 0 ? (u = isNaN(r) ? 1 : 0, f = a) : (f = Math.floor(Math.log(r) / Math.LN2), r * (s = Math.pow(2, -f)) < 1 && (f--, s *= 2), (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= 2 && (f++, s /= 2), f + c >= a ? (u = 0, f = a) : f + c >= 1 ? (u = (r * s - 1) * Math.pow(2, i), f += c) : (u = r * Math.pow(2, c - 1) * Math.pow(2, i), f = 0)); i >= 8; t[e + l] = 255 & u, l += y, u /= 256, i -= 8); for (f = f << i | u, h += i; h > 0; t[e + l] = 255 & f, l += y, f /= 256, h -= 8M ); t[e + l - y] |= 128 * g } }, {}], 4: [function (t, r, e) { (function (r) { "use strict"; const n = t("base64-js"), i = t("ieee754"), o = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null; e.Buffer = r, e.SlowBuffer = function (t) { +t != t && (t = 0); return r.alloc(+t) }, e.INSPECT_MAX_BYTES = 50; const f = 2147483647; function u(t) { if (t > f) throw new RangeError('The value "' + t + '" is invalid for option "size"'); const e = new Uint8Array(t); M return Object.setPrototypeOf(e, r.prototype), e } function r(t, r, e) { if ("number" == typeof t) { if ("string" == typeof r) throw new TypeError('The "string" argument must be of type string. Received type number'); return a(t) } return s(t, r, e) } function s(t, e, n) { if ("string" == typeof t) return function (t, e) { "string" == typeof e && "" !== e || (e = "utf8"); if (!r.isEncoding(e)) throw new TypeError("Unknown encoding: " + e); const n = 0 | y(t, e); let i = u(n); const o = i.write(t, e); o !== n && (i =M i.slice(0, o)); return i }(t, e); if (ArrayBuffer.isView(t)) return function (t) { if (W(t, Uint8Array)) { const r = new Uint8Array(t); return p(r.buffer, r.byteOffset, r.byteLength) } return c(t) }(t); if (null == t) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t); if (W(t, ArrayBuffer) || t && W(t.buffer, ArrayBuffer)) return p(t, e, n); if ("undefined" != typeof SharedArrayBuffer && (W(t, SharedArrayBuffer) || t &&M W(t.buffer, SharedArrayBuffer))) return p(t, e, n); if ("number" == typeof t) throw new TypeError('The "value" argument must not be of type number. Received type number'); const i = t.valueOf && t.valueOf(); if (null != i && i !== t) return r.from(i, e, n); const o = function (t) { if (r.isBuffer(t)) { const r = 0 | l(t.length), e = u(r); return 0 === e.length ? e : (t.copy(e, 0, 0, r), e) } if (void 0 !== t.length) return "number" != typeof t.length || X(t.length) ? u(0) : c(t); if ("Buffer" === t.type && Array.iM sArray(t.data)) return c(t.data) }(t); if (o) return o; if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t[Symbol.toPrimitive]) return r.from(t[Symbol.toPrimitive]("string"), e, n); throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t) } function h(t) { if ("number" != typeof t) throw new TypeError('"size" argument must be of type number'); if (t < 0) throw new RangeError('The value "' +M t + '" is invalid for option "size"') } function a(t) { return h(t), u(t < 0 ? 0 : 0 | l(t)) } function c(t) { const r = t.length < 0 ? 0 : 0 | l(t.length), e = u(r); for (let n = 0; n < r; n += 1)e[n] = 255 & t[n]; return e } function p(t, e, n) { if (e < 0 || t.byteLength < e) throw new RangeError('"offset" is outside of buffer bounds'); if (t.byteLength < e + (n || 0)) throw new RangeError('"length" is outside of buffer bounds'); let i; return i = void 0 === e && void 0 === n ? new Uint8Array(t) : void 0 === n M ? new Uint8Array(t, e) : new Uint8Array(t, e, n), Object.setPrototypeOf(i, r.prototype), i } function l(t) { if (t >= f) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + f.toString(16) + " bytes"); return 0 | t } function y(t, e) { if (r.isBuffer(t)) return t.length; if (ArrayBuffer.isView(t) || W(t, ArrayBuffer)) return t.byteLength; if ("string" != typeof t) throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t); cM onst n = t.length, i = arguments.length > 2 && !0 === arguments[2]; if (!i && 0 === n) return 0; let o = !1; for (; ;)switch (e) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": return q(t).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return G(t).length; default: if (o) return i ? -1 : q(t).length; e = ("" + e).toLowerCase(), o = !0 } } function g(t, r, e) { const n = t[r]; t[r] = t[e], t[e] = n } functM ion w(t, e, n, i, o) { if (0 === t.length) return -1; if ("string" == typeof n ? (i = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), X(n = +n) && (n = o ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) { if (o) return -1; n = t.length - 1 } else if (n < 0) { if (!o) return -1; n = 0 } if ("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e)) return 0 === e.length ? -1 : d(t, e, n, i, o); if ("number" == typeof e) return e &= 255, "function" == typeof Uint8ArM ray.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : d(t, [e], n, i, o); throw new TypeError("val must be string, number or Buffer") } function d(t, r, e, n, i) { let o, f = 1, u = t.length, s = r.length; if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) { if (t.length < 2 || r.length < 2) return -1; f = 2, u /= 2, s /= 2, e /= 2 } function h(t, r) { return 1 === f ? t[r] : t.reM adUInt16BE(r * f) } if (i) { let n = -1; for (o = e; o < u; o++)if (h(t, o) === h(r, -1 === n ? 0 : o - n)) { if (-1 === n && (n = o), o - n + 1 === s) return n * f } else -1 !== n && (o -= o - n), n = -1 } else for (e + s > u && (e = u - s), o = e; o >= 0; o--) { let e = !0; for (let n = 0; n < s; n++)if (h(t, o + n) !== h(r, n)) { e = !1; break } if (e) return o } return -1 } function b(t, r, e, n) { e = Number(e) || 0; const i = t.length - e; n ? (n = Number(n)) > i && (n = i) : n = i; const o = r.length; let f;M for (n > o / 2 && (n = o / 2), f = 0; f < n; ++f) { const n = parseInt(r.substr(2 * f, 2), 16); if (X(n)) return f; t[e + f] = n } return f } function m(t, r, e, n) { return V(q(r, t.length - e), t, e, n) } function E(t, r, e, n) { return V(function (t) { const r = []; for (let e = 0; e < t.length; ++e)r.push(255 & t.charCodeAt(e)); return r }(r), t, e, n) } function v(t, r, e, n) { return V(G(r), t, e, n) } function B(t, r, e, n) { return V(function (t, r) { let e, n, i; const o = []; for (let f = 0; f < t.lengthM && !((r -= 2) < 0); ++f)e = t.charCodeAt(f), n = e >> 8, i = e % 256, o.push(i), o.push(n); return o }(r, t.length - e), t, e, n) } function A(t, r, e) { return 0 === r && e === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(r, e)) } function I(t, r, e) { e = Math.min(t.length, e); const n = []; let i = r; for (; i < e;) { const r = t[i]; let o = null, f = r > 239 ? 4 : r > 223 ? 3 : r > 191 ? 2 : 1; if (i + f <= e) { let e, n, u, s; switch (f) { case 1: r < 128 && (o = r); break; case 2: 128 == (192 & (eM = t[i + 1])) && (s = (31 & r) << 6 | 63 & e) > 127 && (o = s); break; case 3: e = t[i + 1], n = t[i + 2], 128 == (192 & e) && 128 == (192 & n) && (s = (15 & r) << 12 | (63 & e) << 6 | 63 & n) > 2047 && (s < 55296 || s > 57343) && (o = s); break; case 4: e = t[i + 1], n = t[i + 2], u = t[i + 3], 128 == (192 & e) && 128 == (192 & n) && 128 == (192 & u) && (s = (15 & r) << 18 | (63 & e) << 12 | (63 & n) << 6 | 63 & u) > 65535 && s < 1114112 && (o = s) } } null === o ? (o = 65533, f = 1) : o > 65535 && (o -= 65536, n.M push(o >>> 10 & 1023 | 55296), o = 56320 | 1023 & o), n.push(o), i += f } return function (t) { const r = t.length; if (r <= U) return String.fromCharCode.apply(String, t); let e = "", n = 0; for (; n < r;)e += String.fromCharCode.apply(String, t.slice(n, n += U)); return e }(n) } e.kMaxLength = f, r.TYPED_ARRAY_SUPPORT = function () { try { const t = new Uint8Array(1), r = { foo: function () { return 42 } }; return Object.setPrototypeOf(r, Uint8Array.prototype), Object.setPrototypeOf(t, r), 42 === t.foo() } catch M (t) { return !1 } }(), r.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(r.prototype, "parent", { enumerable: !0, get: function () { if (r.isBuffer(this)) return this.buffer } }), Object.defineProperty(r.prototype, "offset", { enumerable: !0, get: function () { if (r.isBuffer(this)) return tM his.byteOffset } }), r.poolSize = 8192, r.from = function (t, r, e) { return s(t, r, e) }, Object.setPrototypeOf(r.prototype, Uint8Array.prototype), Object.setPrototypeOf(r, Uint8Array), r.alloc = function (t, r, e) { return function (t, r, e) { return h(t), t <= 0 ? u(t) : void 0 !== r ? "string" == typeof e ? u(t).fill(r, e) : u(t).fill(r) : u(t) }(t, r, e) }, r.allocUnsafe = function (t) { return a(t) }, r.allocUnsafeSlow = function (t) { return a(t) }, r.isBuffer = function (t) { return null != t && !0 === t._iM sBuffer && t !== r.prototype }, r.compare = function (t, e) { if (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), W(e, Uint8Array) && (e = r.from(e, e.offset, e.byteLength)), !r.isBuffer(t) || !r.isBuffer(e)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); if (t === e) return 0; let n = t.length, i = e.length; for (let r = 0, o = Math.min(n, i); r < o; ++r)if (t[r] !== e[r]) { n = t[r], i = e[r]; break } return n < i ? -1 : i < n ? 1 : 0 }, r.isEncoding = fM unction (t) { switch (String(t).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, r.concat = function (t, e) { if (!Array.isArray(t)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === t.length) return r.alloc(0); let n; if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n)e += t[n].length; const i = r.allocUnsafe(e); let o = 0; M for (n = 0; n < t.length; ++n) { let e = t[n]; if (W(e, Uint8Array)) o + e.length > i.length ? (r.isBuffer(e) || (e = r.from(e)), e.copy(i, o)) : Uint8Array.prototype.set.call(i, e, o); else { if (!r.isBuffer(e)) throw new TypeError('"list" argument must be an Array of Buffers'); e.copy(i, o) } o += e.length } return i }, r.byteLength = y, r.prototype._isBuffer = !0, r.prototype.swap16 = function () { const t = this.length; if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (let M r = 0; r < t; r += 2)g(this, r, r + 1); return this }, r.prototype.swap32 = function () { const t = this.length; if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (let r = 0; r < t; r += 4)g(this, r, r + 3), g(this, r + 1, r + 2); return this }, r.prototype.swap64 = function () { const t = this.length; if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (let r = 0; r < t; r += 8)g(this, r, r + 7), g(this, r + 1, r + 6), g(this, r + 2, r + 5), gM (this, r + 3, r + 4); return this }, r.prototype.toString = function () { const t = this.length; return 0 === t ? "" : 0 === arguments.length ? I(this, 0, t) : function (t, r, e) { let n = !1; if ((void 0 === r || r < 0) && (r = 0), r > this.length) return ""; if ((void 0 === e || e > this.length) && (e = this.length), e <= 0) return ""; if ((e >>>= 0) <= (r >>>= 0)) return ""; for (t || (t = "utf8"); ;)switch (t) { case "hex": return _(this, r, e); case "utf8": case "utf-8": return I(this, r, e); case "ascii": retM urn R(this, r, e); case "latin1": case "binary": return T(this, r, e); case "base64": return A(this, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return L(this, r, e); default: if (n) throw new TypeError("Unknown encoding: " + t); t = (t + "").toLowerCase(), n = !0 } }.apply(this, arguments) }, r.prototype.toLocaleString = r.prototype.toString, r.prototype.equals = function (t) { if (!r.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); return this === t || 0 === r.compare(this, t)M }, r.prototype.inspect = function () { let t = ""; const r = e.INSPECT_MAX_BYTES; return t = this.toString("hex", 0, r).replace(/(.{2})/g, "$1 ").trim(), this.length > r && (t += " ... "), "<Buffer " + t + ">" }, o && (r.prototype[o] = r.prototype.inspect), r.prototype.compare = function (t, e, n, i, o) { if (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), !r.isBuffer(t)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t); if (void 0 === e M && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === i && (i = 0), void 0 === o && (o = this.length), e < 0 || n > t.length || i < 0 || o > this.length) throw new RangeError("out of range index"); if (i >= o && e >= n) return 0; if (i >= o) return -1; if (e >= n) return 1; if (this === t) return 0; let f = (o >>>= 0) - (i >>>= 0), u = (n >>>= 0) - (e >>>= 0); const s = Math.min(f, u), h = this.slice(i, o), a = t.slice(e, n); for (let t = 0; t < s; ++t)if (h[t] !== a[t]) { f = h[t], u = a[t]; break } returM n f < u ? -1 : u < f ? 1 : 0 }, r.prototype.includes = function (t, r, e) { return -1 !== this.indexOf(t, r, e) }, r.prototype.indexOf = function (t, r, e) { return w(this, t, r, e, !0) }, r.prototype.lastIndexOf = function (t, r, e) { return w(this, t, r, e, !1) }, r.prototype.write = function (t, r, e, n) { if (void 0 === r) n = "utf8", e = this.length, r = 0; else if (void 0 === e && "string" == typeof r) n = r, e = this.length, r = 0; else { if (!isFinite(r)) throw new Error("Buffer.write(string, encoding, offsM et[, length]) is no longer supported"); r >>>= 0, isFinite(e) ? (e >>>= 0, void 0 === n && (n = "utf8")) : (n = e, e = void 0) } const i = this.length - r; if ((void 0 === e || e > i) && (e = i), t.length > 0 && (e < 0 || r < 0) || r > this.length) throw new RangeError("Attempt to write outside buffer bounds"); n || (n = "utf8"); let o = !1; for (; ;)switch (n) { case "hex": return b(this, t, r, e); case "utf8": case "utf-8": return m(this, t, r, e); case "ascii": case "latin1": case "binary": return E(this, t, r, M e); case "base64": return v(this, t, r, e); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return B(this, t, r, e); default: if (o) throw new TypeError("Unknown encoding: " + n); n = ("" + n).toLowerCase(), o = !0 } }, r.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; const U = 4096; function R(t, r, e) { let n = ""; e = Math.min(t.length, e); for (let i = r; i < e; ++i)n += String.fromCharCode(127 & t[i]); return n } function T(t, rM , e) { let n = ""; e = Math.min(t.length, e); for (let i = r; i < e; ++i)n += String.fromCharCode(t[i]); return n } function _(t, r, e) { const n = t.length; (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); let i = ""; for (let n = r; n < e; ++n)i += J[t[n]]; return i } function L(t, r, e) { const n = t.slice(r, e); let i = ""; for (let t = 0; t < n.length - 1; t += 2)i += String.fromCharCode(n[t] + 256 * n[t + 1]); return i } function S(t, r, e) { if (t % 1 != 0 || t < 0) throw new RangeError("offset iM s not uint"); if (t + r > e) throw new RangeError("Trying to access beyond buffer length") } function O(t, e, n, i, o, f) { if (!r.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (e > o || e < f) throw new RangeError('"value" argument is out of bounds'); if (n + i > t.length) throw new RangeError("Index out of range") } function C(t, r, e, n, i) { F(r, n, i, t, e, 7); let o = Number(r & BigInt(4294967295)); t[e++] = o, o >>= 8, t[e++] = o, o >>= 8, t[e++] = o, o >>= 8, t[e++] = oM ; let f = Number(r >> BigInt(32) & BigInt(4294967295)); return t[e++] = f, f >>= 8, t[e++] = f, f >>= 8, t[e++] = f, f >>= 8, t[e++] = f, e } function x(t, r, e, n, i) { F(r, n, i, t, e, 7); let o = Number(r & BigInt(4294967295)); t[e + 7] = o, o >>= 8, t[e + 6] = o, o >>= 8, t[e + 5] = o, o >>= 8, t[e + 4] = o; let f = Number(r >> BigInt(32) & BigInt(4294967295)); return t[e + 3] = f, f >>= 8, t[e + 2] = f, f >>= 8, t[e + 1] = f, f >>= 8, t[e] = f, e + 8 } function M(t, r, e, n, i, o) { if (e + n > t.length) throwM new RangeError("Index out of range"); if (e < 0) throw new RangeError("Index out of range") } function N(t, r, e, n, o) { return r = +r, e >>>= 0, o || M(t, 0, e, 4), i.write(t, r, e, n, 23, 4), e + 4 } function P(t, r, e, n, o) { return r = +r, e >>>= 0, o || M(t, 0, e, 8), i.write(t, r, e, n, 52, 8), e + 8 } r.prototype.slice = function (t, e) { const n = this.length; (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e = void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t &M & (e = t); const i = this.subarray(t, e); return Object.setPrototypeOf(i, r.prototype), i }, r.prototype.readUintLE = r.prototype.readUIntLE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = this[t], i = 1, o = 0; for (; ++o < r && (i *= 256);)n += this[t + o] * i; return n }, r.prototype.readUintBE = r.prototype.readUIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = this[t + --r], i = 1; for (; r > 0 && (i *= 256);)n += this[t + --r] * i; return n }, r.M prototype.readUint8 = r.prototype.readUInt8 = function (t, r) { return t >>>= 0, r || S(t, 1, this.length), this[t] }, r.prototype.readUint16LE = r.prototype.readUInt16LE = function (t, r) { return t >>>= 0, r || S(t, 2, this.length), this[t] | this[t + 1] << 8 }, r.prototype.readUint16BE = r.prototype.readUInt16BE = function (t, r) { return t >>>= 0, r || S(t, 2, this.length), this[t] << 8 | this[t + 1] }, r.prototype.readUint32LE = r.prototype.readUInt32LE = function (t, r) { return t >>>= 0, r || S(t, 4, this.leM ngth), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3] }, r.prototype.readUint32BE = r.prototype.readUInt32BE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]) }, r.prototype.readBigUInt64LE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = r + 256 * this[++t] + 65536 * this[++t] + this[++t] * 2 ** 24, i = this[M ++t] + 256 * this[++t] + 65536 * this[++t] + e * 2 ** 24; return BigInt(n) + (BigInt(i) << BigInt(32)) }), r.prototype.readBigUInt64BE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = r * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + this[++t], i = this[++t] * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + e; return (BigInt(n) << BigInt(32)) + BigInt(i) }), r.prototype.readIntLE = function (t, r, e) { t >>>= 0, r >>>= 0M , e || S(t, r, this.length); let n = this[t], i = 1, o = 0; for (; ++o < r && (i *= 256);)n += this[t + o] * i; return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n }, r.prototype.readIntBE = function (t, r, e) { t >>>= 0, r >>>= 0, e || S(t, r, this.length); let n = r, i = 1, o = this[t + --n]; for (; n > 0 && (i *= 256);)o += this[t + --n] * i; return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o }, r.prototype.readInt8 = function (t, r) { return t >>>= 0, r || S(t, 1, this.length), 128 & this[t] ? -1 * (255 M - this[t] + 1) : this[t] }, r.prototype.readInt16LE = function (t, r) { t >>>= 0, r || S(t, 2, this.length); const e = this[t] | this[t + 1] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt16BE = function (t, r) { t >>>= 0, r || S(t, 2, this.length); const e = this[t + 1] | this[t] << 8; return 32768 & e ? 4294901760 | e : e }, r.prototype.readInt32LE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24 }, r.prototype.reM adInt32BE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3] }, r.prototype.readBigInt64LE = Z(function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = this[t + 4] + 256 * this[t + 5] + 65536 * this[t + 6] + (e << 24); return (BigInt(n) << BigInt(32)) + BigInt(r + 256 * this[++t] + 65536 * this[++t] + this[++t] * 2 ** 24) }), r.prototype.readBigInt64BE = ZM (function (t) { z(t >>>= 0, "offset"); const r = this[t], e = this[t + 7]; void 0 !== r && void 0 !== e || D(t, this.length - 8); const n = (r << 24) + 65536 * this[++t] + 256 * this[++t] + this[++t]; return (BigInt(n) << BigInt(32)) + BigInt(this[++t] * 2 ** 24 + 65536 * this[++t] + 256 * this[++t] + e) }), r.prototype.readFloatLE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), i.read(this, t, !0, 23, 4) }, r.prototype.readFloatBE = function (t, r) { return t >>>= 0, r || S(t, 4, this.length), i.reM ad(this, t, !1, 23, 4) }, r.prototype.readDoubleLE = function (t, r) { return t >>>= 0, r || S(t, 8, this.length), i.read(this, t, !0, 52, 8) }, r.prototype.readDoubleBE = function (t, r) { return t >>>= 0, r || S(t, 8, this.length), i.read(this, t, !1, 52, 8) }, r.prototype.writeUintLE = r.prototype.writeUIntLE = function (t, r, e, n) { if (t = +t, r >>>= 0, e >>>= 0, !n) { O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0) } let i = 1, o = 0; for (this[r] = 255 & t; ++o < e && (i *= 256);)this[r + o] = t / i & 255; retuM rn r + e }, r.prototype.writeUintBE = r.prototype.writeUIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, e >>>= 0, !n) { O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0) } let i = e - 1, o = 1; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)this[r + i] = t / o & 255; return r + e }, r.prototype.writeUint8 = r.prototype.writeUInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 1, 255, 0), this[r] = 255 & t, r + 1 }, r.prototype.writeUint16LE = r.prototype.writeUInt16LE = function (t, r, e) {M return t = +t, r >>>= 0, e || O(this, t, r, 2, 65535, 0), this[r] = 255 & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeUint16BE = r.prototype.writeUInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 2, 65535, 0), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeUint32LE = r.prototype.writeUInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 4294967295, 0), this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = 255M & t, r + 4 }, r.prototype.writeUint32BE = r.prototype.writeUInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 4294967295, 0), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = 255 & t, r + 4 }, r.prototype.writeBigUInt64LE = Z(function (t, r = 0) { return C(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")) }), r.prototype.writeBigUInt64BE = Z(function (t, r = 0) { return x(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")) }), r.prototype.writeIntLE =M function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { const n = Math.pow(2, 8 * e - 1); O(this, t, r, e, n - 1, -n) } let i = 0, o = 1, f = 0; for (this[r] = 255 & t; ++i < e && (o *= 256);)t < 0 && 0 === f && 0 !== this[r + i - 1] && (f = 1), this[r + i] = (t / o >> 0) - f & 255; return r + e }, r.prototype.writeIntBE = function (t, r, e, n) { if (t = +t, r >>>= 0, !n) { const n = Math.pow(2, 8 * e - 1); O(this, t, r, e, n - 1, -n) } let i = e - 1, o = 1, f = 0; for (this[r + i] = 255 & t; --i >= 0 && (o *= 256);)tM < 0 && 0 === f && 0 !== this[r + i + 1] && (f = 1), this[r + i] = (t / o >> 0) - f & 255; return r + e }, r.prototype.writeInt8 = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 1, 127, -128), t < 0 && (t = 255 + t + 1), this[r] = 255 & t, r + 1 }, r.prototype.writeInt16LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 2, 32767, -32768), this[r] = 255 & t, this[r + 1] = t >>> 8, r + 2 }, r.prototype.writeInt16BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r,M 2, 32767, -32768), this[r] = t >>> 8, this[r + 1] = 255 & t, r + 2 }, r.prototype.writeInt32LE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 2147483647, -2147483648), this[r] = 255 & t, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24, r + 4 }, r.prototype.writeInt32BE = function (t, r, e) { return t = +t, r >>>= 0, e || O(this, t, r, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[rM + 3] = 255 & t, r + 4 }, r.prototype.writeBigInt64LE = Z(function (t, r = 0) { return C(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")) }), r.prototype.writeBigInt64BE = Z(function (t, r = 0) { return x(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")) }), r.prototype.writeFloatLE = function (t, r, e) { return N(this, t, r, !0, e) }, r.prototype.writeFloatBE = function (t, r, e) { return N(this, t, r, !1, e) }, r.prototype.writeDoubleLE = function (t, r, e) { return M P(this, t, r, !0, e) }, r.prototype.writeDoubleBE = function (t, r, e) { return P(this, t, r, !1, e) }, r.prototype.copy = function (t, e, n, i) { if (!r.isBuffer(t)) throw new TypeError("argument should be a Buffer"); if (n || (n = 0), i || 0 === i || (i = this.length), e >= t.length && (e = t.length), e || (e = 0), i > 0 && i < n && (i = n), i === n) return 0; if (0 === t.length || 0 === this.length) return 0; if (e < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RM angeError("Index out of range"); if (i < 0) throw new RangeError("sourceEnd out of bounds"); i > this.length && (i = this.length), t.length - e < i - n && (i = t.length - e + n); const o = i - n; return this === t && "function" == typeof Uint8Array.prototype.copyWithin ? this.copyWithin(e, n, i) : Uint8Array.prototype.set.call(t, this.subarray(n, i), e), o }, r.prototype.fill = function (t, e, n, i) { if ("string" == typeof t) { if ("string" == typeof e ? (i = e, e = 0, n = this.length) : "string" == typeof n && (iM = n, n = this.length), void 0 !== i && "string" != typeof i) throw new TypeError("encoding must be a string"); if ("string" == typeof i && !r.isEncoding(i)) throw new TypeError("Unknown encoding: " + i); if (1 === t.length) { const r = t.charCodeAt(0); ("utf8" === i && r < 128 || "latin1" === i) && (t = r) } } else "number" == typeof t ? t &= 255 : "boolean" == typeof t && (t = Number(t)); if (e < 0 || this.length < e || this.length < n) throw new RangeError("Out of range index"); if (n <= e) return this; let o; iM f (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), "number" == typeof t) for (o = e; o < n; ++o)this[o] = t; else { const f = r.isBuffer(t) ? t : r.from(t, i), u = f.length; if (0 === u) throw new TypeError('The value "' + t + '" is invalid for argument "value"'); for (o = 0; o < n - e; ++o)this[o + e] = f[o % u] } return this }; const k = {}; function $(t, r, e) { k[t] = class extends e { constructor() { super(), Object.defineProperty(this, "message", { value: r.apply(this, arguments), writable: M !0, configurable: !0 }), this.name = `${this.name} [${t}]`, this.stack, delete this.name } get code() { return t } set code(t) { Object.defineProperty(this, "code", { configurable: !0, enumerable: !0, value: t, writable: !0 }) } toString() { return `${this.name} [${t}]: ${this.message}` } } } function j(t) { let r = "", e = t.length; const n = "-" === t[0] ? 1 : 0; for (; e >= n + 4; e -= 3)r = `_${t.slice(e - 3, e)}${r}`; return `${t.slice(0, e)}${r}` } function F(t, r, e, n, i, o) { if (t > e || t < r) { const n M = "bigint" == typeof r ? "n" : ""; let i; throw i = o > 3 ? 0 === r || r === BigInt(0) ? `>= 0${n} and < 2${n} ** ${8 * (o + 1)}${n}` : `>= -(2${n} ** ${8 * (o + 1) - 1}${n}) and < 2 ** ` + `${8 * (o + 1) - 1}${n}` : `>= ${r}${n} and <= ${e}${n}`, new k.ERR_OUT_OF_RANGE("value", i, t) } !function (t, r, e) { z(r, "offset"), void 0 !== t[r] && void 0 !== t[r + e] || D(r, t.length - (e + 1)) }(n, i, o) } function z(t, r) { if ("number" != typeof t) throw new k.ERR_INVALID_ARG_TYPE(r, "number", t) } function D(t, r, eM ) { if (Math.floor(t) !== t) throw z(t, e), new k.ERR_OUT_OF_RANGE(e || "offset", "an integer", t); if (r < 0) throw new k.ERR_BUFFER_OUT_OF_BOUNDS; throw new k.ERR_OUT_OF_RANGE(e || "offset", `>= ${e ? 1 : 0} and <= ${r}`, t) } $("ERR_BUFFER_OUT_OF_BOUNDS", function (t) { return t ? `${t} is outside of buffer bounds` : "Attempt to access memory outside buffer bounds" }, RangeError), $("ERR_INVALID_ARG_TYPE", function (t, r) { return `The "${t}" argument must be of type number. Received type ${typeof r}` }, TypeErrM or), $("ERR_OUT_OF_RANGE", function (t, r, e) { let n = `The value of "${t}" is out of range.`, i = e; return Number.isInteger(e) && Math.abs(e) > 2 ** 32 ? i = j(String(e)) : "bigint" == typeof e && (i = String(e), (e > BigInt(2) ** BigInt(32) || e < -(BigInt(2) ** BigInt(32))) && (i = j(i)), i += "n"), n += ` It must be ${r}. Received ${i}` }, RangeError); const Y = /[^+\/0-9A-Za-z-_]/g; function q(t, r) { let e; r = r || 1 / 0; const n = t.length; let i = null; const o = []; for (let f = 0; f < n; ++f) { if ((e M = t.charCodeAt(f)) > 55295 && e < 57344) { if (!i) { if (e > 56319) { (r -= 3) > -1 && o.push(239, 191, 189); continue } if (f + 1 === n) { (r -= 3) > -1 && o.push(239, 191, 189); continue } i = e; continue } if (e < 56320) { (r -= 3) > -1 && o.push(239, 191, 189), i = e; continue } e = 65536 + (i - 55296 << 10 | e - 56320) } else i && (r -= 3) > -1 && o.push(239, 191, 189); if (i = null, e < 128) { if ((r -= 1) < 0) break; o.push(e) } else if (e < 2048) { if ((r -= 2) < 0) break; o.push(e >> 6 | 192, 63 & e | 128)M } else if (e < 65536) { if ((r -= 3) < 0) break; o.push(e >> 12 | 224, e >> 6 & 63 | 128, 63 & e | 128) } else { if (!(e < 1114112)) throw new Error("Invalid code point"); if ((r -= 4) < 0) break; o.push(e >> 18 | 240, e >> 12 & 63 | 128, e >> 6 & 63 | 128, 63 & e | 128) } } return o } function G(t) { return n.toByteArray(function (t) { if ((t = (t = t.split("=")[0]).trim().replace(Y, "")).length < 2) return ""; for (; t.length % 4 != 0;)t += "="; return t }(t)) } function V(t, r, e, n) { let i; for (i = 0; i < n M && !(i + e >= r.length || i >= t.length); ++i)r[i + e] = t[i]; return i } function W(t, r) { return t instanceof r || null != t && null != t.constructor && null != t.constructor.name && t.constructor.name === r.name } function X(t) { return t != t } const J = function () { const t = new Array(256); for (let r = 0; r < 16; ++r) { const e = 16 * r; for (let n = 0; n < 16; ++n)t[e + n] = "0123456789abcdef"[r] + "0123456789abcdef"[n] } return t }(); function Z(t) { return "undefined" == typeof BigInt ? H : t } functionM H() { throw new Error("BigInt not supported") } }).call(this, t("buffer").Buffer) }, { "base64-js": 5, buffer: 2, ieee754: 6 }], 5: [function (t, r, e) { "use strict"; e.byteLength = function (t) { var r = h(t), e = r[0], n = r[1]; return 3 * (e + n) / 4 - n }, e.toByteArray = function (t) { var r, e, n = h(t), f = n[0], u = n[1], s = new o(function (t, r, e) { return 3 * (r + e) / 4 - e }(0, f, u)), a = 0, c = u > 0 ? f - 4 : f; for (e = 0; e < c; e += 4)r = i[t.charCodeAt(e)] << 18 | i[t.charCodeAt(e + 1)] << 12M | i[t.charCodeAt(e + 2)] << 6 | i[t.charCodeAt(e + 3)], s[a++] = r >> 16 & 255, s[a++] = r >> 8 & 255, s[a++] = 255 & r; 2 === u && (r = i[t.charCodeAt(e)] << 2 | i[t.charCodeAt(e + 1)] >> 4, s[a++] = 255 & r); 1 === u && (r = i[t.charCodeAt(e)] << 10 | i[t.charCodeAt(e + 1)] << 4 | i[t.charCodeAt(e + 2)] >> 2, s[a++] = r >> 8 & 255, s[a++] = 255 & r); return s }, e.fromByteArray = function (t) { for (var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; f < u; f += 16383)o.push(a(t, f, f + 16383 > u ? u : f +M 16383)); 1 === i ? (r = t[e - 1], o.push(n[r >> 2] + n[r << 4 & 63] + "==")) : 2 === i && (r = (t[e - 2] << 8) + t[e - 1], o.push(n[r >> 10] + n[r >> 4 & 63] + n[r << 2 & 63] + "=")); return o.join("") }; for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = 0, s = f.length; u < s; ++u)n[u] = f[u], i[f.charCodeAt(u)] = u; function h(t) { var r = t.length; if (r % 4 > 0) throw new Error("Invalid string. Length M must be a multiple of 4"); var e = t.indexOf("="); return -1 === e && (e = r), [e, e === r ? 0 : 4 - e % 4] } function a(t, r, e) { for (var i, o, f = [], u = r; u < e; u += 3)i = (t[u] << 16 & 16711680) + (t[u + 1] << 8 & 65280) + (255 & t[u + 2]), f.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]); return f.join("") } i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 }, {}], 6: [function (t, r, e) { e.read = function (t, r, e, n, i) { var o, f, u = 8 * i - n - 1, s = (1 << u) - 1, h =M s >> 1, a = -7, c = e ? i - 1 : 0, p = e ? -1 : 1, l = t[r + c]; for (c += p, o = l & (1 << -a) - 1, l >>= -a, a += u; a > 0; o = 256 * o + t[r + c], c += p, a -= 8); for (f = o & (1 << -a) - 1, o >>= -a, a += n; a > 0; f = 256 * f + t[r + c], c += p, a -= 8); if (0 === o) o = 1 - h; else { if (o === s) return f ? NaN : 1 / 0 * (l ? -1 : 1); f += Math.pow(2, n), o -= h } return (l ? -1 : 1) * f * Math.pow(2, o - n) }, e.write = function (t, r, e, n, i, o) { var f, u, s, h = 8 * o - i - 1, a = (1 << h) - 1, c = a >M > 1, p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, l = n ? 0 : o - 1, y = n ? 1 : -1, g = r < 0 || 0 === r && 1 / r < 0 ? 1 : 0; for (r = Math.abs(r), isNaN(r) || r === 1 / 0 ? (u = isNaN(r) ? 1 : 0, f = a) : (f = Math.floor(Math.log(r) / Math.LN2), r * (s = Math.pow(2, -f)) < 1 && (f--, s *= 2), (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= 2 && (f++, s /= 2), f + c >= a ? (u = 0, f = a) : f + c >= 1 ? (u = (r * s - 1) * Math.pow(2, i), f += c) : (u = r * Math.pow(2, c - 1) * Math.pow(2, i), M f = 0)); i >= 8; t[e + l] = 255 & u, l += y, u /= 256, i -= 8); for (f = f << i | u, h += i; h > 0; t[e + l] = 255 & f, l += y, f /= 256, h -= 8); t[e + l - y] |= 128 * g } }, {}] }, {}, [4])(4) });</script> <script> const buf = buffer </script> <script>var bton = function (t) { const n = new TextEncoder, e = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXM YZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function r(t) { for (const n of e) if (n.name === t) return n.charset; throw TypeError("Charset does not exist: " + t) encode: function (t, e, i = !1) { "string" == typeof t && (t = n.encode(t)); const o = r(e), s = o.length, a = []; let c, u, f, h = "", l = 0; for (c = 0; c < t.length; c++) for (l = 0, u = t[c], h += u > 0 || (h.length ^ c) > 0 ? "" : "1"; l in a || u > 0;) f = a[l], f = f > 0 ? 256 * f + u : u, u = f / s | 0, a[l] = f % s, l++; for (; l-- > 0;) h += o[a[l]]; return i && h.length % 4 > 0 ? h + "=".repeat(4 - h.length % 4) : h }, decode: function (t, n) { const e = r(n), i = e.length, o = [], s = []; t = t.replace("=", ""); let a, c, u, f = 0; for (a = 0; a < t.length; a++) M if (f = 0, c = e.indexOf(t[a]), c < 0) throw new Error(`Character range out of bounds: ${c}`); for (c > 0 || (s.length ^ a) > 0 || s.push(0); f in o || c > 0;) u = o[f], u = u > 0 ? u * i + c : c, c = u >> 8, o[f] = u % 256, f++ for (; f-- > 0;) s.push(o[f]); return new Uint8Array(s) }, o = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", s = [996825010, 642813549, 513874426, 1027748829, 705979059], a = { BECH32: "bech32", BECH32M: "bech32M function c(t) { switch (t) { case a.BECH32: return 1; case a.BECH32M: return 734539939; throw new Error(`Unrecognized encoding: ${t}`) function u(t) { for (let e = 0; e < t.length; ++e) { const r = n >> 25; n = (33554431 & n) << 5 ^ t[e]; for (let t = 0; t < 5; ++t) (r >> t & 1) > 0 && (n ^= s[t]) function f(t) { const n = []; for (e = 0; e < t.length; ++e) n.push(t.charCodeAt(e) >> 5); for (n.push(0), e = 0; e < t.length; ++e) n.push(31 & t.charCodeAt(e)); function h(t, n, e, r = !0) { const i = []; let o = 0, s = 0; const a = (1 << e) - 1, c = (1 << n + e - 1) - 1; for (const r of t) { if (r < 0 || r >> n > 0) return []; for (o = (o << n | r) & c, s M += n; s >= e;) s -= e, i.push(o >> s & a) if (r) s > 0 && i.push(o << e - s & a); else if (s >= n || (o << e - s & a) > 0) return []; function l(t, n, e) { const r = n.concat(function (t, n, e) { const r = u(f(t).concat(n).concat([0, 0, 0, 0, 0, 0])) ^ c(e), i = []; for (let t = 0; t < 6; ++t) i.push(r >> 5 * (5 - t) & 31); }(t, n, e)); let i = t + "1"; for (let t = 0; t < r.length; M ++t) i += o.charAt(r[t]); function d(t, n) { const e = n > 0 ? "bech32m" : "bech32"; if (!function (t) { let n, e, r = !1, i = !1; for (n = 0; n < t.length; ++n) { if (e = t.charCodeAt(n), e < 33 || e > 126) return !1; e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) return !(r && i) }(t)) return { hrp: null, data: [255] }; if (!function (t) { t n = t.lastIndexOf("1"); return !(n < 1 || n + 7 > t.length || t.length > 90) }(t = t.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = t.lastIndexOf("1"), s = t.substring(0, i); for (let n = i + 1; n < t.length; ++n) { const e = o.indexOf(t.charAt(n)); if (-1 === e) return { hrp: null, data: [255] }; return function (t, n, e) { return u(f(t).concat(n)) === c(e) }(s, r, e) ? {M hrp: s, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } function w(t, n = 0) { const e = t.split("1", 1)[0], { hrp: r, data: i } = d(t, n), o = h(i.slice(1), 5, 8, !1), s = o.length; switch (!0) { case e !== r: throw new Error("Returned hrp string is invalid."); case null === o || s < 2 || s > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("RetM urned version bit is out of range."); case 0 === i[0] && 20 !== s && 32 !== s: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== n: case 0 !== i[0] && 1 !== n: throw new Error("Decoded version bit does not match."); return Uint8Array.from(o) encode: function (t, n = "bch", e = 0) { const r = l(n, [e, ...h([...t], 8, 5)], e >M 0 ? "bech32m" : "bech32"); return w(r, e), r }, decode: w }, g = new TextEncoder, p = new TextDecoder; function m(t) { return g.encode(t) function b(t) { const n = []; let e, r = 0; if (t.length % 2 > 0) throw new Error(`Invalid hex string length: ${t.length}`); for (e = 0; e < t.length; e += 2) n[r] = parseInt(t.slice(e, e + 2), 16), r += 1; return Uint8Array.from(n) function A(t) { if (0 === t) return Uint8Array.of(0); const n = []; for (; t > 0;) { const e = 255 & t; n.push(e), t = (t - e) / 256 return Uint8Array.from(n) function x(t) { if (0n === t) return Uint8Array.of(0); const n = []; for (; t > 0n;) { const e = 0xffn & t; n.push(Number(e)), t = (t - e) / 256n return Uint8Array.from(n) function E(t) { return p.decM function v(t) { let n, e = 0; for (n = t.length - 1; n >= 0; n--) e = 256 * e + t[n]; return Number(e) function S(t) { let n, e = 0n; for (n = t.length - 1; n >= 0; n--) e = 256n * e + BigInt(t[n]); return BigInt(e) async function P(t) { return crypto.subtle.digest("SHA-256", t).then((t => new Uint8Array(t))) async function O(t) { return P(await P(t)) const { crypto: U } = globalThis; let _ = class extends Uint8Array { this.num = (t, n, e = "le") => { const r = new _(A(t), n); return "le" === e ? r.reverse() : r this.big = (t, n, e = "le") => { const r = new _(x(t), n); return "le" === e ? r.reverse() : r static async b58check(t) { const n = i.decode(t, "base58"); return new _(await async function (t) { const n = t.slice(0, -4), e = t.slice(-4); if ((await O(n)).slice(0, 4).toString() !== e.toString()) throw new Error("Invalid checksum!"); return n this.any = (t, n) => new _(function (t) { if (t instanceof ArrayBuffer) return new Uint8Array(t); if (t instanceof Uint8Array) return t; const n = typeof t; switch (n) { return x(t); case "boolean": return Uint8Array.of(t); case "number": return A(t); case "string": return null !== t.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? b(t) : g.encode(t); default: throw TypeError("Unsupported format:" + n) this.raw = (t, n) => new _(t, n) this.str = (t, n) => new _(m(t), n) this.hex = (t, n) => new _(b(t), n) this.json = t => new _(m(JSON.stringify(t))) this.base64 = t => new _(i.decode(t, "base64")) this.b64url = t => new _(i.decode(t, "base64url")) this.bech32 = (t, n = 0) => new _(y.decode(t, n)) constructor(t, n)M if (void 0 !== n) { const e = new Uint8Array(n).fill(0); e.set(new Uint8Array(t)), t = e.buffer return super(t), this return this.toNum() return this.toBig() return this.toArr() return this.toStr() return this.toHex() return new Uint8Array(this) get base64() { return this.toBase64() get b64url() { return this.toB64url() get digest() { return this.toDigest() return this.toDigest().then((t => new _(t).hex)) toNum(t = "le") { return v("le" === t ? this.reverse() : this) toBig(t = "le") { S("le" === t ? this.reverse() : this) async toDigest(t = "SHA-256") { return U.subtle.digest(t, this.raw).then((t => new Uint8Array(t))) async tob58check() { return i.encode(await async function (t) { const n = await O(t); return Uint8Array.of(...t, ...n.slice(0, 4)) }(this), "base58") return Array.from(this) return E(this) return function (t) { const n = []; for (e = 0; e < t.length; e++) n.push(t[e].toString(16).padStart(2, "0")); return n.join("") return JSON.parse(E(this)) return new Uint8Array(this) toB64url() { return i.encode(this, "base64url") toBase64(t) { urn i.encode(this, "base64", t) toBech32(t, n = 0) { return y.encode(this, t, n) prepend(t) { return _.of(...t, ...this) return _.of(...this, ...t) slice(t, n) { return new _(new Uint8Array(this).slice(t, n)) return new _(new Uint8Array(this).reverse()) write(t, n) { this.set(t, n) prefixSize2(t) { return _.of(..._.readSize(this.length, t), ...this) // Rarity Garden Hack prefixSize(t) { const sized = _.readSize(this.length, t); const thised = this; var uint8 = new Uint8Array(sized.length + thised.length); uint8.set(sized); uint8.set(thised, sized.length); return new _(uint8) static from(t) { return new _(Uint8Array.from(t)) static of2(...t) { return new _(Uint8Array.of(...t)) // Rarity Garden Hack static of(...t) { const uint8 = new Uint8Array(t.length); for (let i = 0; i < uint8.length; i++) { uint8[i] = t[i]; return new _(uint8) static join(t) { let n, e = 0; const r = t.reduce(((t, n) => t + n.length), 0), i = new Uint8Array(r); for (const r of t) for (n = 0; n < r.leM ngth; e++, n++) i[e] = r[n]; return new _(i, r) static readSize(t, n) { if (t < 253) return _.num(t, 1); if (t < 65536) return _.of(253, ..._.num(t, 2, n)); if (t < 4294967296) return _.of(254, ..._.num(t, 4, n)); if (t < 0x10000000000000000) return _.of(255, ..._.num(t, 8, n)); throw new Error(`Value is too large: ${t}`) static random(t = 32) { return new _(U.getRandomValues(new Uint8Array(t))) this.encode = m this.decode = E static normalize(t, n) { if (t instanceof Uint8Array) return t; if ("string" == typeof t) return _.hex(t, n).raw; if ("number" == typeof t) return _.num(t, n).raw; if ("bigint" == typeof t) return _.big(t, n).raw; throw TypeError("Unrecognized format: " + typeof t) static serialize(t) { ing" == typeof t) return _.str(t).raw; if ("object" == typeof t) { if (t instanceof Uint8Array) return t; return _.json(t).raw } catch { throw TypeError("Object is not serializable.") throw TypeError("Unrecognized format: " + typeof t) static revitalize(t) { if (t instanceof Uint8Array && (t = E(t)), "string" == typeof t) try { return JSON.parse(tM return t constructor(t) { this.data = new Uint8Array(t), this.size = this.data.length if (t > this.size) throw new Error(`Size greater than stream: ${t} > ${this.size}`); return new _(this.data.slice(0, t).buffer) t = t ?? this.readSize(); const n = this.peek(t); his.data = this.data.slice(t), this.size = this.data.length, n readSize() { const t = this.read(1).toNum(); switch (!0) { case t >= 0 && t < 253: return t; case 253 === t: return this.read(2).toNum(); case 254 === t: return this.read(4).toNum(); case 255 === t: return this.read(8).toNum(); default: throw new Error(`Varint is out of raM OP_PUSHDATA1: 76, OP_PUSHDATA2: 77, OP_PUSHDATA4: 78, OP_1NEGATE: 79, OP_NOTIF: 100, OP_ELSE: 103, OP_ENDIF: 104, OP_VERIFY: 105, OP_RETURN: 106, OP_TOALTSTACK: 107, OP_FROMALTSTACK: 108, OP_2DROP: 109, OP_2DUP: 110, OP_3DUP: 111, OP_2OVER: 112, OP_2ROT: 113, OP_2SWAP: 114, OP_IFDUP: 115, OP_DEPTH: 116, OP_DROP: 117, OP_DUP: 118, OP_NIP: 119, OP_OVER: 120, OP_PICK: 121, OP_ROT: 123, OP_SWAP: 124, OP_TUCK: 125, OP_SIZE: 130, OP_EQUAL: 135, OP_EQUALVERIFY: 136, OP_1ADD: 139, OP_1SUB: 140, OP_NEGATE: 143, OP_ABS: 144, OP_NOT: 145, OP_0NOTEQUAL: 146, OP_ADD: 147, OP_SUB: 148, OP_BOOLAND: 154, OP_BOOLOR: 155, OP_NUMEQUAL: 156, OP_NUMEQUALVERIFY: 157, OP_NUMNOTEQUAL: 158, OP_LESSTHAN: 159, OP_LESSTHANOREQUAL: 161, OP_GREATERTHANOREQUAL: 162, OP_MIN: 163, OP_MAX: 164, OP_WITHIN: 165, OP_RIPEMD160: 166, OP_SHA1: 167, OP_SHA256: 168, OP_HASH160: 169, OP_HASH256: 170, OP_CODESEPARATOR: 171, OP_CHECKSIG: 172, OP_CHECKSIGVERIFY: 173, OP_CHECKMULTISIG: 174, OP_CHECKMULTISIGVERIFY: 175, OP_NOP1: 176, OP_CHECKLOCKTIMEVERIFY: 177, _CHECKSEQUENCEVERIFY: 178, OP_NOP4: 179, OP_NOP5: 180, OP_NOP6: 181, OP_NOP7: 182, OP_NOP8: 183, OP_NOP9: 184, OP_NOP10: 185 function H(t) { for (const [n, e] of Object.entries(I)) if (e === t) return n; throw new Error("OPCODE not found:" + String(t)) const z = 520; function N(t = [], n = !0) { let e = _.num(0); return Array.isArray(t) && (e = _.raw(T(t))), "string" == tyM peof t && (e = _.hex(t)), t instanceof Uint8Array && (e = _.raw(t)), n && (e = e.prefixSize("be")), e.raw function T(t) { const n = []; for (const e of t) n.push(R(e)); return n.length > 0 ? _.join(n) : new Uint8Array function R(t) { let n = new Uint8Array; if ("string" == typeof t) { if (t.startsWith("OP_")) return _.num(function (t) { for (const [n, e] of Object.entries(I)) if (n === t) return Number(e); throw new Error("OPCODE not found:" + t) t.startsWith("STR_") && (n = _.str(t.slice(3))), n = _.hex(t) if ("number" == typeof t && (n = _.num(t)), t instanceof Uint8Array && (n = t), n.length > z) { const t = function (t) { const n = [], e = new B(t); for (; e.size > z;) n.push(e.read(z)); return n.push(e.read(e.size)), n return T(t) return _.of(...function (tM const n = _.num(76, 1), e = _.num(77, 1); switch (!0) { case t <= 75: return _.num(t); case t > 75 && t < 256: return _.join([n, _.num(t, 1)]); case t >= 256 && t <= z: return _.join([e, _.num(t, 2, "be")]); default: throw new Error("Invalid word size:" + t.toString()) }(n.length), ...n) function k(t) { return _.num(t, 4).reverse()M function C(t) { return _.hex(t, 32).reverse() function D(t) { return _.num(t, 4).reverse() function K(t = 4294967295) { return ("string" == typeof t ? _.hex(t, 4) : _.num(t, 4)).reverse() function j(t) { return "number" == typeof t && (t = BigInt(t)), _.big(t, 8).reverse() function $(t) { const n = []; if (Array.isArray(t)) { n.push(_.readSize(t.length)); for (const e of t) n.push(N(e)); return _.join(n) return _.normalize(t) function V(t) { return _.num(t, 4).reverse() function L(t) { "string" == typeof t && (t = _.hex(t).raw); const n = new B(t), e = function (t) { return t.read(4).reverse().toNum() }(n), r = function (t) { const [n, e] = [...t.peek(2)]; if (0 === n) { if (t.read(2), 1 === e) return !0; throw new Error(`Invalid witness flag: ${e}`) }(n), i = function (t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) n.push(q(t)); }(n), o = function (t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) n.push(F(t)); if (r) for (const t of i) t.witness = M(n); const s = function (t) { return t.read(4).reversM return { version: e, input: i, output: o, locktime: s } function q(t) { txid: t.read(32).reverse().toHex(), vout: t.read(4).reverse().toNum(), scriptSig: Y(t, !0), sequence: t.read(4).reverse().toHex() function F(t) { return { value: t.read(8).reverse().big, scriptPubKey: Y(t, !0) } function M(t) { const n = [], e = t.readSize(); for (let r = 0; r < e; r++) { const e = Y(t, !0); function Y(t, n) { const e = !0 === n ? t.readSize() : t.size; return e > 0 ? t.read(e).toHex() : _.num(0).toHex() function Z(t) { if (void 0 === t) throw new Error("Script data is undefined!"); if (Array.isArray(t)) throw new Error("Script data is an array!"); return _.normalize(t) function W(t) { case 0 === t: return "opcode"; case t >= 1 && t <= 75: return "varint"; case 76 === t: return "pushdata1"; case 77 === t: return "pushdata2"; case 78 === t: return "pushdata4"; case t <= 185: return "opcode"; throw new Error(`Invalid word range: ${t}`) function G(t) { switch (!0) { case "number" != typeof t: return !1; case 0 === t: return !0; case [126, 127, 128, 129, 131, 132, 133, 134, 141, 142, 149, 150, 151, 152, 153].includes(t): return !1; case 75 < t && t < 186: return !0; return !1 /*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */ const { crypto: X } = globalThis, J = BigInt(0), Q = BigInt(1), tt = BigIntM (2), nt = BigInt(3), et = BigInt(8), rt = Object.freeze({ b: BigInt(7), P: BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), n: BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"), Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee") }), it = (t, n) => (t + n / tt) / n, ot = { beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), splitScalar(t) { const { n: n } = rt, e = BigInt("0x3086d221a7d46bcde86c90e49284eb15"), r = -Q * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), i = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), o = e, s = BigInt("0x1000000M 00000000000000000000000000"), a = it(o * t, n), c = it(-r * t, n); let u = Tt(t - a * e - c * i, n), f = Tt(-a * r - c * o, n); const h = u > s, l = f > s; if (h && (u = n - u), l && (f = n - f), u > s || f > s) throw new Error("splitScalarEndo: Endomorphism failed, k=" + t); return { k1neg: h, k1: u, k2neg: l, k2: f } }, st = 32, at = 32, ct = 32, ut = st + 1, ft = 2 * st + 1; function ht(t) { const { a: n, b: e } = rt, r =M Tt(t * t), i = Tt(r * t); return Tt(i + n * t + e) const lt = rt.a === J; class dt extends Error { constructor(t) { function wt(t) { if (!(t instanceof yt)) throw new TypeError("JacobianPoint expected") constructor(t, n, e) { this.x = t, this.y = n, this.z = e static get BASE() { return new yt(rt.Gx, rt.Gy, Q) return new yt(J, Q, J) static fromAffine(t) { if (!(t instanceof mt)) throw new TypeError("JacobianPoint#fromAffine: expected Point"); return t.equals(mt.ZERO) ? yt.ZERO : new yt(t.x, t.y, Q) static toAffineBatch(t) { const n = function (t, n = rt.P) { const e = new Array(t.length), r = kt(t.reduce(((t, r, i) => r === J ? t : (e[i] = t, Tt(t * r, n))), Q), n); return tM .reduceRight(((t, r, i) => r === J ? t : (e[i] = Tt(t * e[i], n), Tt(t * r, n))), r), e }(t.map((t => t.z))); return t.map(((t, e) => t.toAffine(n[e]))) static normalizeZ(t) { return yt.toAffineBatch(t).map(yt.fromAffine) const { x: n, y: e, z: r } = this, { x: i, y: o, z: s } = t, a = Tt(r * r), c = Tt(s * s), u = Tt(n * c), f = Tt(i * a), h = Tt(Tt(e * s) * c), l = Tt(Tt(o * r) * a); return u === f && h === l return new yt(this.x, Tt(-this.y), this.z) const { x: t, y: n, z: e } = this, r = Tt(t * t), i = Tt(n * n), o = Tt(i * i), s = t + i, a = Tt(tt * (Tt(s * s) - r - o)), c = Tt(nt * r), u = Tt(c * c), f = Tt(u - tt * a), h = Tt(c * (a - f) - et * o), l = Tt(tt * n * e); return new yt(f, h, l) { x: n, y: e, z: r } = this, { x: i, y: o, z: s } = t; if (i === J || o === J) return this; if (n === J || e === J) return t; const a = Tt(r * r), c = Tt(s * s), u = Tt(n * c), f = Tt(i * a), h = Tt(Tt(e * s) * c), l = Tt(Tt(o * r) * a), d = Tt(f - u), w = Tt(l - h); if (d === J) return w === J ? this.double() : yt.ZERO; const y = Tt(d * d), g = Tt(d * y), p = Tt(u * y), m = Tt(w * w - g - tt * p), b = Tt(w * (p - m) - h * g), A = Tt(rM return new yt(m, b, A) subtract(t) { return this.add(t.negate()) multiplyUnsafe(t) { const n = yt.ZERO; if ("bigint" == typeof t && t === J) return n; let e = Nt(t); if (e === Q) return this; if (!lt) { let t = n, r = this; for (; e > J;) e & Q && (t = t.add(r)), r = r.double(), e >>= Q; return t let { k1neg: r, k1: i, k2neM g: o, k2: s } = ot.splitScalar(e), a = n, c = n, u = this; for (; i > J || s > J;) i & Q && (a = a.add(u)), s & Q && (c = c.add(u)), u = u.double(), i >>= Q, s >>= Q; return r && (a = a.negate()), o && (c = c.negate()), c = new yt(Tt(c.x * ot.beta), c.y, c.z), a.add(c) precomputeWindow(t) { const n = lt ? 128 / t + 1 : 256 / t + 1, e = []; let r = this, i = r; for (let o = 0; o < n; o++) { i = r, e.push(i); et n = 1; n < 2 ** (t - 1); n++) i = i.add(r), e.push(i); r = i.double() wNAF(t, n) { !n && this.equals(yt.BASE) && (n = mt.BASE); const e = n && n._WINDOW_SIZE || 1; if (256 % e) throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2"); let r = n && pt.get(n); r || (r = this.precomputeWindow(e), n && 1 !== e && (r = yt.normalizeZ(r), pt.set(n, r))); let i = yM t.ZERO, o = yt.BASE; const s = 1 + (lt ? 128 / e : 256 / e), a = 2 ** (e - 1), c = BigInt(2 ** e - 1), u = 2 ** e, f = BigInt(e); for (let n = 0; n < s; n++) { const e = n * a; let s = Number(t & c); t >>= f, s > a && (s -= u, t += Q); const h = e, l = e + Math.abs(s) - 1, d = n % 2 != 0, w = s < 0; 0 === s ? o = o.add(gt(d, r[h])) : i = i.add(gt(w, r[l])) return { p: i, f: o } let e, r, i = Nt(t); const { k1neg: t, k1: o, k2neg: s, k2: a } = ot.splitScalar(i); let { p: c, f: u } = this.wNAF(o, n), { p: f, f: h } = this.wNAF(a, n); c = gt(t, c), f = gt(s, f), f = new yt(Tt(f.x * ot.beta), f.y, f.z), e = c.add(f), r = u.add(h) const { p: t, f: o } = this.wNAF(i, n); e = t, r = o return yt.normalizeZ([e, r])[0] const { x: n, y: e, z: r } = this, i = this.equals(yt.ZERO); null == t && (t = i ? et : kt(r)); const o = t, s = Tt(o * o), a = Tt(s * o), c = Tt(n * s), u = Tt(e * a), f = Tt(r * o); if (i) return mt.ZERO; if (f !== Q) throw new Error("invZ was invalid"); return new mt(c, u) function gt(t, n) { const e = n.negate(); return t ? e : n const pt = new WeakMap; let mt = class {M constructor(t, n) { this.x = t, this.y = n _setWindowSize(t) { this._WINDOW_SIZE = t, pt.delete(this) static get BASE() { return new mt(rt.Gx, rt.Gy) static get ZERO() { return new mt(J, J) hasEvenY() { return this.y % tt === J static fromCompressedHex(t) { const n = 32 === t.length, e = Ht(n ? t : t.subarray(1)); (e)) throw new Error("Point is not on curve"); let r = function (t) { const { P: n } = rt, e = BigInt(6), r = BigInt(11), i = BigInt(22), o = BigInt(23), s = BigInt(44), a = BigInt(88), c = t * t * t % n, u = c * c * t % n, f = Rt(u, nt) * u % n, h = Rt(f, nt) * u % n, l = Rt(h, tt) * c % n, d = Rt(l, r) * l % n, w = Rt(d, i) * d % n, y = Rt(w, s) * w % n, g = Rt(y, a) * y % n, p = Rt(g, s) * w % n, m = Rt(p, nt) * u % n, b = Rt(m, o) * d % n, A = Rt(b, e) * c % n, x = Rt(A, tt); if (x * x % n !== t) throw new Error("Cannot find square root"); return x const i = (r & Q) === Q; if (n) i && (r = Tt(-r)); else { 1 == (1 & t[0]) !== i && (r = Tt(-r)) const o = new mt(e, r); return o.assertValidity(), o static fromUncompressedHex(t) { const n = Ht(t.subarray(1, st + 1)), e = Ht(t.subarray(st + 1, 2 *M st + 1)), r = new mt(n, e); return r.assertValidity(), r static fromHex(t) { const n = zt(t), e = n.length, r = n[0]; if (e === st) return this.fromCompressedHex(n); if (e === ut && (2 === r || 3 === r)) return this.fromCompressedHex(n); if (e === ft && 4 === r) return this.fromUncompressedHex(n); throw new Error(`Point.fromHex: received invalid point. Expected 32-${ut} compressed bytes or ${ft} uncompressed bytes, not ${e}`) static fromPrivateKey(t) { return mt.BASE.multiply(qt(t)) static fromSignature(t, n, e) { const { r: r, s: i } = Mt(n); if (![0, 1, 2, 3].includes(e)) throw new Error("Cannot recover: invalid recovery bit"); const o = Ct(zt(t)), { n: s } = rt, a = 2 === e || 3 === e ? r + s : r, c = kt(a, s), u = Tt(-o * c, s), f = Tt(i * c, s), h = 1 & e ? "03" : "02", l = mt.fromHex(h + Ot(a)), d = mt.BASE.multiplyAndAM if (!d) throw new Error("Cannot recover signature: point at infinify"); return d.assertValidity(), d toRawBytes(t = !1) { return It(this.toHex(t)) toHex(t = !1) { const n = Ot(this.x); return `${this.hasEvenY() ? "02" : "03"}${n}` return `04${n}${Ot(this.y)}` return this.toHex(!0).slice(2) return this.toRawBytes(!0).slice(1) assertValidity() { const t = "Point is not on elliptic curve", { x: n, y: e } = this; if (!Vt(n) || !Vt(e)) throw new Error(t); const r = Tt(e * e); if (Tt(r - ht(n)) !== J) throw new Error(t) return this.x === t.x && this.y === t.y return new mt(this.x, Tt(-this.y)) return yt.fromAffine(this).double().toAffine() return yt.fromAffine(this).add(yt.fromAffine(t)).toAffine() subtract(t) { return this.add(t.negate()) multiply(t) { return yt.fromAffine(this).multiply(t, this).toAffine() multiplyAndAddUnsafe(t, n, e) { const r = yt.fromAffine(this), i = n === J || n === Q || this !== mt.BASE ? r.multiplyUnsafe(n) : r.multiply(M o = yt.fromAffine(t).multiplyUnsafe(e), s = i.add(o); return s.equals(yt.ZERO) ? void 0 : s.toAffine() function bt(t) { return Number.parseInt(t[0], 16) >= 8 ? "00" + t : t function At(t) { if (t.length < 2 || 2 !== t[0]) throw new Error(`Invalid signature integer tag: ${St(t)}`); const n = t[1], e = t.subarray(2, n + 2); if (!n || e.length !== n) throw new Error("Invalid signature integer: wrong length")M if (0 === e[0] && e[1] <= 127) throw new Error("Invalid signature integer: trailing length"); return { data: Ht(e), left: t.subarray(n + 2) } constructor(t, n) { this.r = t, this.s = n, this.assertValidity() static fromCompact(t) { const n = t instanceof Uint8Array, e = "Signature.fromCompact"; if ("string" != typeof t && !n) throw new TypeError(`${e}: Expected string or Uint8Array`); if (128 !== r.length) throw new Error(`${e}: Expected 64-byte hex`); return new xt(Bt(r.slice(0, 64)), Bt(r.slice(64, 128))) static fromDER(t) { const n = t instanceof Uint8Array; if ("string" != typeof t && !n) throw new TypeError("Signature.fromDER: Expected string or Uint8Array"); const { r: e, s: r } = function (t) { if (t.length < 2 || 48 != t[0]) throw new Error(`Invalid signature tag: ${St(t)}`); if (t[1] !== t.length - 2) throw new Error("Invalid signature: incorrect length"); const { data: n, left: e } = At(t.subarray(2)), { data: r, left: i } = At(e); if (i.length) throw new Error(`Invalid signature: left bytes after parsing: ${St(i)}`); return { r: n, s: r } }(n ? t : It(t)); return new xt(e, r) static fromHex(t) { return this.fromDER(t) assertValidity() { const { r: t, sM if (!$t(t)) throw new Error("Invalid Signature: r must be 0 < r < n"); if (!$t(n)) throw new Error("Invalid Signature: s must be 0 < s < n") hasHighS() { const t = rt.n >> Q; return this.s > t normalizeS() { return this.hasHighS() ? new xt(this.r, Tt(-this.s, rt.n)) : this toDERRawBytes() { return It(this.toDERHex()) toDERHex() { const t =M bt(_t(this.s)), n = bt(_t(this.r)), e = t.length / 2, r = n.length / 2, i = _t(e), o = _t(r); return `30${_t(r + e + 4)}02${o}${n}02${i}${t}` toRawBytes() { return this.toDERRawBytes() return this.toDERHex() toCompactRawBytes() { return It(this.toCompactHex()) toCompactHex() { return Ot(this.r) + Ot(this.s) function Et(...t) { if (!t.every((t => t instanceof Uint8Array))) throw new Error("Uint8Array list expected"); if (1 === t.length) return t[0]; const n = t.reduce(((t, n) => t + n.length), 0), e = new Uint8Array(n); for (let n = 0, r = 0; n < t.length; n++) { const i = t[n]; e.set(i, r), r += i.length const vt = Array.from({ length: 256 }, ((t, n) => n.toString(16).padStart(2, "0"))); function St(t) { if (!(t instanceof UM int8Array)) throw new Error("Expected Uint8Array"); for (let e = 0; e < t.length; e++) n += vt[t[e]]; const Pt = BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"); function Ot(t) { if ("bigint" != typeof t) throw new Error("Expected bigint"); if (!(J <= t && t < Pt)) throw new Error("Expected number 0 <= n < 2^256"); return t.toString(16).padStart(64, "0") function Ut(tM const n = It(Ot(t)); if (32 !== n.length) throw new Error("Error: expected 32 bytes"); function _t(t) { const n = t.toString(16); return 1 & n.length ? `0${n}` : n function Bt(t) { if ("string" != typeof t) throw new TypeError("hexToNumber: expected string, got " + typeof t); return BigInt(`0x${t}`) function It(t) { if ("string" != typeof t) throw new TypeError("hexToBytes: expeM cted string, got " + typeof t); if (t.length % 2) throw new Error("hexToBytes: received invalid unpadded hex" + t.length); const n = new Uint8Array(t.length / 2); for (let e = 0; e < n.length; e++) { const r = 2 * e, i = t.slice(r, r + 2), o = Number.parseInt(i, 16); if (Number.isNaN(o) || o < 0) throw new Error("Invalid byte sequence"); function Ht(t) { return Bt(St(t)) return t instanceof Uint8Array ? Uint8Array.from(t) : It(t) function Nt(t) { if ("number" == typeof t && Number.isSafeInteger(t) && t > 0) return BigInt(t); if ("bigint" == typeof t && $t(t)) return t; throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n") function Tt(t, n = rt.P) { const e = t % n; return e >= J ? e : n + e function Rt(t, n) { const { P: e } = rt; for (; n-- > J;) r *= r, r %= e; function kt(t, n = rt.P) { if (t === J || n <= J) throw new Error(`invert: expected positive integers, got n=${t} mod=${n}`); let e = Tt(t, n), r = n, i = J, o = Q; for (; e !== J;) { const t = r % e, n = i - o * (r / e); r = e, e = t, i = o, o = n if (r !== Q) throw new Error("invert: does not exist"); return Tt(i, n) const e = function (t) { const n = 8 * t.length - 8 * at, e = Ht(t); return n > 0 ? e >> BigInt(n) : e if (n) return e; const { n: r } = rt; return e >= r ? e - r : e constructor(t, n) { if (this.hashLen = t, this.qByteLen = n, "number" != typeof t || t < 2) throw new Error("hashLen must be a number"); if ("number" != typeof n || n < 2) throw neM w Error("qByteLen must be a number"); this.v = new Uint8Array(t).fill(1), this.k = new Uint8Array(t).fill(0), this.counter = 0 hmac(...t) { return ln.hmacSha256(this.k, ...t) hmacSync(...t) { return Kt(this.k, ...t) checkSync() { if ("function" != typeof Kt) throw new dt("hmacSha256Sync needs to be set") if (this.counter >= 1e3) throw new Error("Tried 1,000 k valuesM for sign(), all were invalid"); this.counter += 1 async reseed(t = new Uint8Array) { this.k = await this.hmac(this.v, Uint8Array.from([0]), t), this.v = await this.hmac(this.v), 0 !== t.length && (this.k = await this.hmac(this.v, Uint8Array.from([1]), t), this.v = await this.hmac(this.v)) reseedSync(t = new Uint8Array) { this.checkSync(), this.k = this.hmacSync(this.v, Uint8Array.from([0]), t), this.v = this.hmacSync(this.v), 0 !== t.lengM th && (this.k = this.hmacSync(this.v, Uint8Array.from([1]), t), this.v = this.hmacSync(this.v)) async generate() { this.incr(); let t = 0; const n = []; for (; t < this.qByteLen;) { this.v = await this.hmac(this.v); const e = this.v.slice(); n.push(e), t += this.v.length return Et(...n) generateSync() { this.checkSync(), this.incr(); let t = 0; const n = []; for (; t < this.qByteLen;) { this.v = this.hmacSync(this.v); const e = this.v.slice(); n.push(e), t += this.v.length return Et(...n) function $t(t) { return J < t && t < rt.n function Vt(t) { return J < t && t < rt.P function Lt(t, n, e, r = !0) { const { n: i } = rt, o = Ct(t, !0); if (!$t(o)) return; = kt(o, i), a = mt.BASE.multiply(o), c = Tt(a.x, i); if (c === J) return; const u = Tt(s * Tt(n + e * c, i), i); if (u === J) return; let f = new xt(c, u), h = (a.x === f.r ? 0 : 2) | Number(a.y & Q); return r && f.hasHighS() && (f = f.normalizeS(), h ^= 1), { sig: f, recovery: h } function qt(t) { if ("bigint" == typeof t) n = t; else if ("number" == typeof t && Number.isSafeInteger(t) && t > 0) n = BigInt(t); else if ("stringM if (t.length !== 2 * at) throw new Error("Expected 32 bytes of private key"); if (!(t instanceof Uint8Array)) throw new TypeError("Expected valid private key"); if (t.length !== at) throw new Error("Expected 32 bytes of private key"); if (!$t(n)) throw new Error("Expected private key: 0 < key < n"); function Ft(t) { return t instanceof mt ? (tM .assertValidity(), t) : mt.fromHex(t) function Mt(t) { if (t instanceof xt) return t.assertValidity(), t; return xt.fromDER(t) } catch (n) { return xt.fromCompact(t) function Yt(t) { const n = t instanceof Uint8Array, e = "string" == typeof t, r = (n || e) && t.length; return n ? r === ut || r === ft : e ? r === 2 * ut || r === 2 * ft : t instanceof mt function Zt(t, n, e = !1) {M if (Yt(t)) throw new TypeError("getSharedSecret: first arg must be private key"); if (!Yt(n)) throw new TypeError("getSharedSecret: second arg must be public key"); const r = Ft(n); return r.assertValidity(), r.multiply(qt(t)).toRawBytes(e) function Wt(t) { return Ht(t.length > st ? t.slice(0, st) : t) function Gt(t) { const n = Wt(t), e = Tt(n, rt.n); return Xt(e < J ? n : e) function Xt(t) { function Jt(t, n, e) { if (null == t) throw new Error(`sign: expected valid message hash, not "${t}"`); const r = zt(t), i = qt(n), o = [Xt(i), Gt(r)]; if (null != e) { !0 === e && (e = ln.randomBytes(st)); const t = zt(e); if (t.length !== st) throw new Error(`sign: Expected ${st} bytes of extra data`); return { seed: Et(...o), m: Wt(r), d: i } function Qt(t, n) M const { sig: e, recovery: r } = t, { der: i, recovered: o } = Object.assign({ canonical: !0, der: !0 }, n), s = i ? e.toDERRawBytes() : e.toCompactRawBytes(); return o ? [s, r] : s const tn = { strict: !0 }; function nn(t) { return Tt(Ht(t), rt.n) constructor(t, n) { this.r = t, this.s = n, this.assertValidity() static fromHex(t) { const n = zt(t); if (64 !=M = n.length) throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${n.length}`); const e = Ht(n.subarray(0, 32)), r = Ht(n.subarray(32, 64)); return new en(e, r) assertValidity() { const { r: t, s: n } = this; if (!Vt(t) || !$t(n)) throw new Error("Invalid signature") return Ot(this.r) + Ot(this.s) toRawBytes() { return It(this.toHex()) constructor(t, n, e = ln.randomBytes()) { if (null == t) throw new TypeError(`sign: Expected valid message, not "${t}"`); this.m = zt(t); const { x: r, scalar: i } = this.getScalar(qt(n)); if (this.px = r, this.d = i, this.rand = zt(e), 32 !== this.rand.length) throw new TypeError("sign: Expected 32 bytes of aux randomness") getScalar(t) { const n = mt.fromPrivateKey(t), e = n.hasEvenY() ? t : rt.n - t; return { point: n, scalar: e, x: n.toRawX() } initNonce(t, n) { return Ut(t ^ Ht(n)) finalizeNonce(t) { const n = Tt(Ht(t), rt.n); if (n === J) throw new Error("sign: Creation of signature failed. k is zero"); const { point: e, x: r, scalar: i } = this.getScalar(n); return { R: e, rx: r, k: i } finalizeSig(t, n, e, r) { return new en(t.x, Tt(n + e * r, rt.n)).toRawBytes() throw new Error("sign: Invalid signature produced") async calc() { const { m: t, d: n, px: e, rand: r } = this, i = ln.taggedHash, o = this.initNonce(n, await i(fn.aux, r)), { } = this.finalizeNonce(await i(fn.nonce, o, e, t)), u = nn(await i(fn.challenge, a, e, t)), f = this.finalizeSig(s, c, u, n); return await an(f, t, e) || this.error(), f const { m: t, d: n, px: e, rand: r } = this, i = ln.taggedHashSync, o = this.initNonce(n, i(fn.aux, r)), { R: s, rx: a, k: c } = this.finalizeNonce(i(fn.nonce, o, e, t)), u = nn(i(fn.challenge, a, e, t)), f = this.finalizeSig(s, c, u, n); return cn(f, t, e) || this.error(), f function on(t, n, e) { const r = t instanceof en, i = r ? t : en.fromHex(t); return r && i.assertValidity(), { ...i, m: zt(n), P: FM function sn(t, n, e, r) { const i = mt.BASE.multiplyAndAddUnsafe(n, qt(e), Tt(-r, rt.n)); return !(!i || !i.hasEvenY() || i.x !== t) async function an(t, n, e) { const { r: r, s: i, m: o, P: s } = on(t, n, e), a = nn(await ln.taggedHash(fn.challenge, Ut(r), s.toRawX(), o)); return sn(r, s, i, a) } catch (t) { function cn(t, n, e) { const { r: r, s: i, m: o, P: s } = on(t, n, e), a = nn(ln.taggedHashSync(fn.challenge, Ut(r), s.toRawX(), o)); return sn(r, s, i, a) } catch (t) { if (t instanceof dt) throw t; Signature: en, getPublicKey: function (t) { return mt.fromPrivateKey(t).toRawX() }, sign: async function (t, n, e) { return new rn(t, n, e).calc() }, verify: an, signSync: function (t, n, e)M return new rn(t, n, e).calcSync() }, verifySync: cn mt.BASE._setWindowSize(8); const fn = { challenge: "BIP0340/challenge", aux: "BIP0340/aux", nonce: "BIP0340/nonce" }, hn = {}, ln = { bytesToHex: St, hexToBytes: It, concatBytes: Et, isValidPrivateKey(t) { return qt(t), !0 } catch (t) { return !1 _bigintTo32M _normalizePrivateKey: qt, hashToPrivateKey: t => { t = zt(t); const n = at + 8; if (t.length < n || t.length > 1024) throw new Error("Expected valid bytes of private key as per FIPS 186"); return Ut(Tt(Ht(t), rt.n - Q) + Q) randomBytes: (t = 32) => X.getRandomValues(new Uint8Array(t)), randomPrivateKey: () => ln.hashToPrivateKey(ln.randomBytes(at + 8)), precompute(t = 8, n = mt.BASE) { = n === mt.BASE ? n : new mt(n.x, n.y); return e._setWindowSize(t), e.multiply(nt), e sha256: async (...t) => { const n = await X.subtle.digest("SHA-256", Et(...t)); return new Uint8Array(n) hmacSha256: async (t, ...n) => { const e = await X.subtle.importKey("raw", t, { name: "HMAC", hash: { name: "SHA-256" } }, !1, ["sign"]), r = Et(...n), i = await X.subtle.sign("HMAC", e, r); return new Uint8Array(i) sha256Sync: void 0, hmacSha256Sync: void 0, taggedHash: async (t, ...n) => { let e = hn[t]; if (void 0 === e) { const n = await ln.sha256(Uint8Array.from(t, (t => t.charCodeAt(0)))); e = Et(n, n), hn[t] = e return ln.sha256(e, ...n) taggedHashSync: (t, ...n) => { if ("function" != typeof Dt) throw new dt("sha256Sync is undefined, you need to set it"); let e = hn[t]; if (void 0 === e) { const n = Dt(Uint8Array.from(t, (t => t.charCodeAt(0)))); e = Et(n, n), hn[t] = e return Dt(e, ...n) _JacobianPoint: yt Object.defineProperties(ln, { sha256Sync: { configurable: !1, get: () => Dt, set(t) { Dt || (Dt = t) }, hmacSha256Sync: { configurable: !1, get: () => Kt, set(t) { Kt || (Kt = t) var dn = Object.freeze({ __proto__: null, CURVE: rt, Point: mt, Signature: xt, getPublicKey: function (t, n = !1) { return mt.fromPrivateKey(t).toRawBytes(n) }, getSharedSecret: Zt, recoverPublicKey: function (t, n, e, r = !1) { return mt.fromSignature(t, n, e).toRawBytes(r) }, schnorr: un, sign: async function (t, n, e = {}) { const { seed: r, m: i, d: o } = Jt(t, n, e.extraEntropy), s = new jt(ct, at); (await s.reseed(r); !(a = Lt(await s.generate(), i, o, e.canonical));) await s.reseed(); return Qt(a, e) }, signSync: function (t, n, e = {}) { const { seed: r, m: i, d: o } = Jt(t, n, e.extraEntropy), s = new jt(ct, at); for (s.reseedSync(r); !(a = Lt(s.generateSync(), i, o, e.canonical));) s.reseedSync(); return Qt(a, e) }, utils: ln, verify: function (t, n, e, r = tn) { i = Mt(t), n = zM } catch (t) { return !1 const { r: o, s: s } = i; if (r.strict && i.hasHighS()) return !1; const a = Ct(n); c = Ft(e) } catch (t) { return !1 const { n: u } = rt, f = kt(s, u), h = Tt(a * f, u), l = Tt(o * f, u), d = mt.BASE.multiplyAndAddUnsafe(c, h, l); return !!d && Tt(d.x, u) === o yn = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function gn(t) { for (const n of yn) if (n.name === t) return n.charset; throw TypeError("Charset does not exist: " + t) encode: function (t, n, e = !1) { "string" == typeof t && (t = wn.encode(t)); const r = gn(n), i = r.length, o = []; let s, a, c, u = "", f = 0; for (s = 0; s < t.length; s++) for (f = 0, a = t[s], u += a > 0 || (u.length ^ s) > 0 ? "" : "1"; f in o || a > 0;) c = o[f], c = c > 0 ? 256 * c + a : a, a = c / i | 0, o[f] = c % i, f++; for (; f-- > 0;) u += r[o[f]]; return e && u.length % 4 > 0 ? u + "=".repeat(4 - u.length % 4) : uM }, decode: function (t, n) { const e = gn(n), r = e.length, i = [], o = []; t = t.replace("=", ""); let s, a, c, u = 0; for (s = 0; s < t.length; s++) { if (u = 0, a = e.indexOf(t[s]), a < 0) throw new Error(`Character range out of bounds: ${a}`); for (a > 0 || (o.length ^ s) > 0 || o.push(0); u in i || a > 0;) c = i[u], c = c > 0 ? c * r + a : a, a = c >> 8, i[u] = c % 256, u++ for (; u-- > 0;) o.push(i[u]); return new Uint8Array(o) }, mn = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", bn = [996825010, 642813549, 513874426, 1027748829, 705979059], An = { BECH32: "bech32", BECH32M: "bech32m" }; function xn(t) { switch (t) { case An.BECH32: return 1; case An.BECH32M: return 734539939; throw new Error(`Unrecognized encoding: ${t}`) function En(t) { for (let e = 0; e < t.length; ++e) { const r = n >> 25; n = (33554431 & n) << 5 ^ t[e]; for (let t = 0; t < 5; ++t) (r >> t & 1) > 0 && (n ^= bn[t]) function vn(t) { const n = []; for (e = 0; e < t.length; ++e) n.push(t.charCodeAt(e) >> 5); for (n.push(0), e = 0; e < t.length; ++e) n.push(31 & t.charCodeAt(e)); function Sn(t, n, e, r = !0) { let o = 0, s = 0; const a = (1 << e) - 1, c = (1 << n + e - 1) - 1; for (const r of t) { if (r < 0 || r >> n > 0) return []; for (o = (o << n | r) & c, s += n; s >= e;) s -= e, i.push(o >> s & a) if (r) s > 0 && i.push(o << e - s & a); else if (s >= n || (o << e - s & a) > 0) return []; function Pn(t, n, e) { const r = n.concat(function (t, n, e) { const r = En(vn(t).concat(n).conM cat([0, 0, 0, 0, 0, 0])) ^ xn(e), i = []; for (let t = 0; t < 6; ++t) i.push(r >> 5 * (5 - t) & 31); }(t, n, e)); let i = t + "1"; for (let t = 0; t < r.length; ++t) i += mn.charAt(r[t]); function On(t, n) { const e = n > 0 ? "bech32m" : "bech32"; if (!function (t) { let n, e, r = !1, i = !1; for (n = 0; n < t.length; ++n) { if (e = t.charCodeAt(n), e < 33 || e > 126) reM e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) return !(r && i) }(t)) return { hrp: null, data: [255] }; if (!function (t) { const n = t.lastIndexOf("1"); return !(n < 1 || n + 7 > t.length || t.length > 90) }(t = t.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = t.lastIndexOf("1"), o = t.substring(0, i); for (let n = i + 1; n < t.length; ++n) { const e = M mn.indexOf(t.charAt(n)); if (-1 === e) return { hrp: null, data: [255] }; return function (t, n, e) { return En(vn(t).concat(n)) === xn(e) }(o, r, e) ? { hrp: o, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } function Un(t, n = 0) { const e = t.split("1", 1)[0], { hrp: r, data: i } = On(t, n), o = Sn(i.slice(1), 5, 8, !1), s = o.length; switch (!0) { case e !== r: new Error("Returned hrp string is invalid."); case null === o || s < 2 || s > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("Returned version bit is out of range."); case 0 === i[0] && 20 !== s && 32 !== s: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== n: case 0 !== i[0] && 1 !== n: throw new Error("Decoded versionM bit does not match."); return Uint8Array.from(o) encode: function (t, n = "bch", e = 0) { const r = Pn(n, [e, ...Sn([...t], 8, 5)], e > 0 ? "bech32m" : "bech32"); return Un(r, e), r }, decode: Un }, Bn = new TextEncoder, In = new TextDecoder; function Hn(t) { return Bn.encode(t) function zn(t) { const n = []; let e, r = 0; gth % 2 > 0) throw new Error(`Invalid hex string length: ${t.length}`); for (e = 0; e < t.length; e += 2) n[r] = parseInt(t.slice(e, e + 2), 16), r += 1; return Uint8Array.from(n) function Nn(t) { const n = []; for (; t > 0;) { const e = 255 & t; n.push(e), t = (t - e) / 256 return Uint8Array.from(n) function Tn(t) { const n = []; for (; t > 0n;) { const e = 0xffn & t; n.push(Number(e)), t = (t - e) / 256n return Uint8Array.from(n) function Rn(t) { return In.decode(t) function kn(t) { let n, e = 0; for (n = t.length - 1; n >= 0; n--) e = 256 * e + t[n]; return Number(e) function Cn(t) { let n, e = 0n; for (n = t.length - 1; n >= 0; n--) e = 256n * e + BigInt(t[n]); return BigInt(e) async function Dn(t) { rypto.subtle.digest("SHA-256", t).then((t => new Uint8Array(t))) async function Kn(t) { return Dn(await Dn(t)) const { crypto: jn } = globalThis; class $n extends Uint8Array { this.num = (t, n, e = "le") => new $n(Nn(t), n, e) this.big = (t, n, e = "le") => new $n(Tn(t), n, e) static async b58check(t) { const n = pn.decode(t, "base58"); return new $n(M await async function (t) { const n = t.slice(0, -4), e = t.slice(-4); if ((await Kn(n)).slice(0, 4).toString() !== e.toString()) throw new Error("Invalid checksum!"); return n this.buff = (t, n) => new $n(function (t) { if (t instanceof ArrayBuffer) return new Uint8Array(t); if (t instanceof Uint8Array) return t; const n = typeof t; switch (n) { case "bM return Tn(t); case "boolean": return Uint8Array.of(t); case "number": return Nn(t); case "string": return null !== t.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? zn(t) : Bn.encode(t); default: throw TypeError("Unsupported format:" + n) this.raw = (t, n) => new $n(t, n) this.str = (t, n) => new $n(Hn(t), n) this.hex = (t, n) => new $n(zn(t), n) this.json = t => new $n(Hn(JSON.stringify(t))) this.base64 = t => new $n(pn.decode(t, "base64")) this.b64url = t => new $n(pn.decode(t, "base64url")) this.bech32 = (t, n) => new $n(_n.decode(t, n)) constructor(t,M n = null, e = "be") { if (null !== n) { const e = new Uint8Array(n).fill(0); e.set(new Uint8Array(t)), t = e.buffer return super(t = "le" === e ? new Uint8Array(t).reverse() : t), this return this.toNum() return this.toBig() return this.toArr() return this.toStr() return this.toHex() return new Uint8Array(this) get hash() { return this.toHash() return this.toHash().then((t => new $n(t).hex)) toNum(t = "le") { return kn("le" === t ? this.reverse() : this) toBig(t = "le") { return Cn("le" === t ? this.reverse() : this) async toHash() { return jn.subtle.digest("SHA-256", this.raw).then((t => new Uint8Array(t))) async tob58check() { return pn.encode(await async function (t) { const n = await Kn(t); return Uint8Array.of(...t, ...n.slice(0, 4)) }(this), "base58") return Array.from(this) return Rn(this) return function (t) { const n = M for (e = 0; e < t.length; e++) n.push(t[e].toString(16).padStart(2, "0")); return n.join("") return JSON.parse(Rn(this)) return new Uint8Array(this) toB64url() { return pn.encode(this, "base64url") toBase64(t) { return pn.encode(this, "base64", t) toBech32(t, n) { return _n.encode(this, t, n) prepend(t) { return $n.of(...t, ...this) return $n.of(...this, ...t) slice(t, n) { return new $n(new Uint8Array(this).slice(t, n)) return new $n(new Uint8Array(this).reverse()) write(t, n) { this.set(t, n) prependVarint(t = this.length) { return $n.of(...$n.readVarinM static from(t) { return new $n(Uint8Array.from(t)) static of(...t) { return new $n(Uint8Array.of(...t)) static join(t) { let n, e = 0; const r = t.reduce(((t, n) => t + n.length), 0), i = new Uint8Array(r); for (const r of t) for (n = 0; n < r.length; e++, n++) i[e] = r[n]; return new $n(i, r) static readVarint(t) { if (t < 253) return $nM if (t < 65536) return $n.of(253, ...$n.num(t, 2)); if (t < 4294967296) return $n.of(254, ...$n.num(t, 4)); if (t < 0x10000000000000000) return $n.of(255, ...$n.num(t, 8)); throw new Error(`Value is too large: ${t}`) static random(t = 32) { return new $n(jn.getRandomValues(new Uint8Array(t))) this.encode = Hn this.decode = Rn static normalize(t, n) { if (t instanceof Uint8Array) return t; if ("string" == typeof t) return $n.hex(t, n).toBytes(); if ("number" == typeof t) return $n.num(t, n).toBytes(); if ("bigint" == typeof t) return $n.big(t, n).toBytes(); throw TypeError("Unrecognized format: " + typeof t) static serialize(t) { if ("string" == typeof t) return $n.str(t).toBytes(); if ("object" == typeof t) { if (t instanceof M Uint8Array) return t; return $n.json(t).toBytes() } catch { throw TypeError("Object is not serializable.") throw TypeError("Unrecognized format: " + typeof t) static revitalize(t) { if (t instanceof Uint8Array && (t = Rn(t)), "string" == typeof t) try { return JSON.parse(t) return t const Vn = globalThis.crypto; async function Ln(t, n) { return Zt($n.normalize(t), $n.normalize(n), !0) async function qn(t) { return Vn.subtle.importKey("raw", $n.normalize(t), { name: "AES-CBC" }, !0, ["encrypt", "decrypt"]) ecdh: Ln, import: qn, export: async function (t) { return Vn.subtle.exportKey("raw", t).then((t => new Uint8Array(t))) }, hmac: async function (t, n = "SHA-256") { e = { name: "HMAC", hash: n }; return Vn.subtle.importKey("raw", $n.normalize(t), e, !1, ["sign", "verify"]) }, shared: async function (t, n) { return qn((await Ln(t, n)).slice(1, 33)) }, generate: async function () { return qn($n.random(32)) }, normalize: async function (t) { return t instanceof CryptoKey ? t : Fn.import(t) class Mn extends Uint8Array { this.N = rt.n static mod(t, n = Mn.N) { return ln.mod(t, n) this.isField = t => t instanceof Mn static normalize(t) { return t = Zn(t), t = Mn.mod(t), t = ln._normalizePrivateKey(t), $n.big(t, 32).raw static validate(t) { return ln.isValidPrivateKey(t) constructor(t) { super(t = Mn.normalize(t)) get buff() { return new $n(this) return this return this.buff.toBig() get point() { return Yn.fromNum(this.num) get hasOddY() { return this.point.hasOddY get negated() { return this.hasOddY ? this.negate() : this return new Mn(t).num > this.num return new Mn(t).num < this.num return new Mn(t).num === this.num return new Mn(t).num !== this.num const n = new Mn(t); return new Mn(this.num + n.num) const n = new Mn(t); return new Mn(this.num - n.num) const n = new Mn(t); return new Mn(this.num * n.num) pow(t, n = Mn.N - 1n) { const e = new MnM (t), r = Mn.mod(e.num, n); return new Mn(this.num ** r) const n = new Mn(t), e = this.pow(n.num, Mn.N - 2n); return new Mn(this.num * e.num) return new Mn(Mn.N - this.num) this.N = rt.n static validate(t) { t = Zn(t); const n = $n.big(t).toHex(); return mt.fromHex(M n).assertValidity(), !0 return !1 static fromNum(t) { t = Zn(t); const n = ln.mod(t, Yn.N), e = mt.BASE.multiply(n); return new Yn(e.x, e.y) static fromX(t) { t = Zn(t); const n = $n.big(t).toHex(); return Yn.from(mt.fromHex(n)) static from(t) { return new Yn(t.x, t.y) constructor(t, n) { p = new mt(t, n), this.__x = this.__p.x, this.__y = this.__p.y, this.__p.assertValidity() return this.__p get buff() { return new $n(this.rawX.slice(1)) return this.buff.hex get hasOddY() { return !this.__p.hasEvenY() get rawX() { const t = this.__p.hasEvenY() ? 2 : 3, n = $n.big(this.__x); return Uint8Array.of(t, ...n) get rawY() { return $n.big(this.__y) return this.__x return this.__y return t instanceof Yn ? this.p.equals(new mt(t.x, t.y)) : t instanceof Uint8Array ? this.x.toString() === t.toString() : "number" == typeof t ? BigInt(t) === this.x : t === this.x return t instanceof Yn ? Yn.from(this.p.add(t.p)) : Yn.from(this.p.aM dd(Yn.fromNum(t).p)) return t instanceof Yn ? Yn.from(this.p.subtract(t.p)) : Yn.from(this.p.subtract(Yn.fromNum(t).p)) return t instanceof Yn ? Yn.from(this.p.multiply(t.x)) : Yn.from(this.p.multiply(Zn(t))) return Yn.from(this.__p.negate()) function Zn(t) { if (t instanceof Uint8Array) return $n.raw(t).big; if ("string" == typeof t) return $M if ("number" == typeof t) return BigInt(t); if ("bigint" == typeof t) return t; throw TypeError("Invalid input type:" + typeof t) function Wn(t) { for (let e = t.length - 1; e >= 0; e--) n = 256n * n + BigInt(t[e]); return BigInt(n) function Gn(t, n = 0) { const e = []; for (; t > 0;) { const n = 0xffn & t; e.push(n), t = (t - n) / 256n = Uint8Array.from(e.map((t => Number(t)))); if (0 !== n) { const t = new Uint8Array(n); t.set(r), r = t const Xn = [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n, 10n, 11n, 12n, 13n, 14n, 15n, 7n, 4n, 13n, 1n, 10n, 6n, 15n, 3n, 12n, 0n, 9n, 5n, 2n, 14n, 11n, 8n, 3n, 10n, 14n, 4n, 9n, 15n, 8n, 1n, 2n, 7n, 0n, 6n, 13n, 11n, 5n, 12n, 1n, 9n, 11n, 10n, 0n, 8n, 12n, 4n, 13n, 3n, 7n, 15n, 14n, 5n, 6n, 2n, 4n, 0n, 5n, 9n, 7n, 12n, 2n, 10n, 14n, 1n, 3nM , 8n, 11n, 6n, 15n, 13n], Jn = [5n, 14n, 7n, 0n, 9n, 2n, 11n, 4n, 13n, 6n, 15n, 8n, 1n, 10n, 3n, 12n, 6n, 11n, 3n, 7n, 0n, 13n, 5n, 10n, 14n, 15n, 8n, 12n, 4n, 9n, 1n, 2n, 15n, 5n, 1n, 3n, 7n, 14n, 6n, 9n, 11n, 8n, 12n, 2n, 10n, 0n, 4n, 13n, 8n, 6n, 4n, 1n, 3n, 11n, 15n, 0n, 5n, 12n, 2n, 13n, 9n, 7n, 10n, 14n, 12n, 15n, 10n, 4n, 1n, 5n, 8n, 7n, 6n, 2n, 13n, 14n, 0n, 3n, 9n, 11n], Qn = [11n, 14n, 15n, 12n, 5n, 8n, 7n, 9n, 11n, 13n, 14n, 15n, 6n, 7n, 9n, 8n, 7n, 6n, 8n, 13n, 11n, 9n, 7n, 15n, 7n, 12M n, 15n, 9n, 11n, 7n, 13n, 12n, 11n, 13n, 6n, 7n, 14n, 9n, 13n, 15n, 14n, 8n, 13n, 6n, 5n, 12n, 7n, 5n, 11n, 12n, 14n, 15n, 14n, 15n, 9n, 8n, 9n, 14n, 5n, 6n, 8n, 6n, 5n, 12n, 9n, 15n, 5n, 11n, 6n, 8n, 13n, 12n, 5n, 12n, 13n, 14n, 11n, 8n, 5n, 6n], te = [8n, 9n, 9n, 11n, 13n, 15n, 15n, 5n, 7n, 7n, 8n, 11n, 14n, 14n, 12n, 6n, 9n, 13n, 15n, 7n, 12n, 8n, 9n, 11n, 7n, 7n, 12n, 7n, 6n, 15n, 13n, 11n, 9n, 7n, 15n, 11n, 8n, 6n, 6n, 14n, 12n, 13n, 5n, 14n, 13n, 13n, 7n, 5n, 15n, 5n, 8n, 11n, 14n, 14n, 6n, 14n, 6n, M 9n, 12n, 9n, 12n, 5n, 15n, 8n, 8n, 5n, 12n, 9n, 12n, 5n, 14n, 6n, 8n, 13n, 6n, 5n, 15n, 13n, 11n, 11n], ne = [0n, 0x5a827999n, 0x6ed9eba1n, 0x8f1bbcdcn, 0xa953fd4en], ee = [0x50a28be6n, 0x5c4dd124n, 0x6d703ef3n, 0x7a6d76e9n, 0n]; function re(t, n, e, r) { switch (!0) { case 0n === r: return t ^ n ^ e; case 1n === r: return t & n | ~t & e; case 2n === r: return (t | ~n) ^ e; case 3n === r: return t & e | n & ~e; case 4n === r: return t ^ (n | ~e); throw new TypeError("Unknown I value: " + String(r)) function ie(t, n) { return 0xffffffffn & (t << n | (0xffffffffn & t) >> 32n - n) function oe(t, n, e, r, i, o) { const s = []; let a, c, u, f, h, l, d, w = t, y = n, g = e, p = r, m = i, b = t, A = n, x = e, E = r, v = i; for (let t = 0; t < 16; t++) { const n = Wn(o.slice(4 * t, 4 * (t + 1))); for (let t = 0; t < 80; t++) a = BigInt(t) >> 4n, f = s[Number(Xn[t])], h = ne[Number(a)], l = s[Number(Jn[t])], d = ee[Number(a)], w = ie(w + re(y, g, p, a) + f + h, Qn[t]) + m, c = m, m = p, p = ie(g, 10n), g = y, y = w, w = c, b = ie(b + re(A, x, E, 4n - a) + l + d, te[t]) + v, u = v, v = E, E = ie(x, 10n), x = A, A = b, b = u; return [n + g + E, e + p + v, r + m + b, i + w + A, t + y + x] const se = glM async function ae(t, n = "SHA-256", e = 1, r = (t => t)) { let i, o = t instanceof ArrayBuffer ? t : $n.normalize(t).buffer; for (i = 0; i < e; i++) o = await se.subtle.digest(n, o), r(o); return new Uint8Array(o) async function ce(t) { return ae(t, "SHA-256") function ue(t) { return function (t) { let n = [0x67452301n, 0xefcdab89n, 0x98badcfen, 0x10325476n, 0xc3d2e1f0n]; for (let e = 0; M e < t.length >> 6; e++) n = oe(...n, t.slice(64 * e, 64 * (e + 1))); const e = [128, ...new Array(119 - t.length & 63).fill(0)], r = Uint8Array.from([...t.slice(-64 & t.length), ...e, ...Gn(BigInt(8 * t.length), 8)]); for (let t = 0; t < r.length >> 6; t++) n = oe(...n, r.slice(64 * t, 64 * (t + 1))); const i = []; for (let t = 0; t < n.length; t++) { const e = 0xffffffffn & n[t]; i.push(...Gn(e, 4)) return UiM }(t = $n.normalize(t)) data: async function (t) { return ce($n.serialize(t)).then((t => new Uint8Array(t))) }, digest: ae, ripe160: ue, sha256: ce, sha512: async function (t) { return ae(t, "SHA-512") }, hash160: async function (t) { return ue(await ce(t)) }, hash256: async function (t) { return ae(t, "SHA-256", 2) }, hmac256: async function (t, n) { const e = M await Fn.hmac(t, "SHA-256"); return se.subtle.sign("HMAC", e, $n.normalize(n)).then((t => new Uint8Array(t))) }, hmac512: async function (t, n) { const e = await Fn.hmac(t, "SHA-512"); return se.subtle.sign("HMAC", e, $n.normalize(n)).then((t => new Uint8Array(t))) }, he = [1, 2, 3, 129, 130, 131]; function le(t, n) { if (n) throw new Error(t); const de = 192, we = new TextEncoder; let e = new Mn(t); return e.point.hasOddY && (e = e.negate()), e.add(n) function ge(t, n) { return Yn.fromX(t).add(n).rawX async function pe(t, n = [], e = !1) { const r = _.normalize(t), i = n.length > 0 ? await me(n) : new Uint8Array, o = e ? dn.getPublicKey(r, !0).slice(1) : r, s = await Ee(o, i); if (e) return [_.raw(ye(r, s)).hex, 0]; const t = _.raw(ge(r, s)); return [t.slice(1M ).hex, t.slice(0, 1).num] async function me(t) { return Se(t).then((t => _.hex(t[0]))) async function be(t) { const n = await fe.sha256(we.encode(t)); return Uint8Array.of(...n, ...n) // Rarity Garden Hack async function Ae(t, n = de) { let leafed = await be("TapLeaf"); const uint8 = new Uint8Array(leafed.length); for (let i = 0; i < leafed.length; i++) { uint8[i] = leafed[i];M let tn = function (t = 192) { return 254 & t const uint8_tn = new Uint8Array(1); uint8_tn[0] = tn; let normed = _.normalize(t); const uint8_normed = new Uint8Array(normed.length); for (let i = 0; i < uint8_normed.length; i++) { uint8_normed[i] = normed[i]; var uint8_new = new Uint8Array(uint8.length + uint8_normed.length + uint8_tn.length); uint8_new.set(uint8); 8_new.set(uint8_tn, uint8.length); uint8_new.set(uint8_normed, uint8.length + uint8_tn.length); return fe.sha256(uint8_new).then((t => _.raw(t).hex)) async function Ae2(t, n = de) { return fe.sha256(Uint8Array.of(...await be("TapLeaf"), function (t = 192) { return 254 & t }(n), ..._.normalize(t))).then((t => _.raw(t).hex)) async function xe(t, n) { return n < t && ([t, n] = [n, t]), fe.sha256(Uint8Array.of(...await be("TapM Branch"), ..._.hex(t).raw, ..._.hex(n).raw)).then((t => _.raw(t).hex)) async function Ee(t, n) { return fe.sha256(Uint8Array.of(...await be("TapTweak"), ..._.normalize(t), ..._.normalize(n))) async function ve(t, n, e) { const r = new B(_.normalize(n)), [i, o] = (s = r.read(1).num) % 2 == 0 ? [s, 2] : [s - 1, 3]; const a = r.read(32), c = _.of(o, ..._.normalize(t)), u = []; for (; r.size >= 32;) u.push(r.readM if (0 !== r.size) throw new Error("Invalid control block size!"); for (const t of u) f = await xe(f, t); const h = ge(a, await Ee(a, _.hex(f))); return _.raw(h).hex === _.raw(c).hex async function Se(t, n = null, e = []) { const r = [], i = []; for (let i = 0; i < t.length; i++) { const o = t[i]; if (Array.isArray(o)) { const [t, i, s] = await Se(o, n); r.push(t), n = i, e.push(...s) } else r.push(o) if (1 === r.length) return [r[0], n, e]; r.sort(), r.length % 2 != 0 && r.push(r[r.length - 1]); for (let t = 0; t < r.length - 1; t += 2) { const o = await xe(r[t], r[t + 1]); i.push(o), "string" == typeof n && (n === r[t] ? (e.push(r[t + 1]), n = o) : n === r[t + 1] && (e.push(r[t]), n = o)) return Se(i, n, e) const Pe = [0, 1, 2, 3, 129, 130, 131]; async function Oe(t, n, e = {}) {M ("string" == typeof t || t instanceof Uint8Array) && (t = L(t)); extention: r, sigflag: i = 0, extflag: o = 0, key_version: s = 0, separator_pos: a = 4294967295 } = e, { version: c, input: u = [], output: f = [], locktime: h } = t; if (n >= u.length) throw new Error("Index out of bounds: " + String(n)); if (!Pe.includes(i)) throw new Error("Invalid hash type: " + String(i)); if (o < 0 || o > 127) thM row new Error("Extention flag out of range: " + String(o)); const { txid: l, vout: d, sequence: w, witness: y = [] } = u[n], g = 128 == (128 & i), p = await async function (t) { if (void 0 === t) return; if (t.length < 2) return; let n = t.at(-1); "string" == typeof n && (n = _.hex(n)); if (n instanceof Uint8Array && 80 === n[0]) return _.raw(n).prefixSize("be").digest; }(y), m = 2 * (o + (void 0 !== M r ? 1 : 0)) + (void 0 !== p ? 1 : 0), b = [await be("TapSighash"), _.num(0, 1), _.num(i, 1), k(c), V(h)]; const t = u.map((t => Ue(t))); b.push(await async function (t) { const n = []; for (const { txid: e, vout: r } of t) n.push(C(e)), n.push(D(r)); return fe.sha256(_.join(n)) }(u), await async function (t) { const n = []; for (const { value: e } of t) n.push(j(e)); return feM }(t), await async function (t) { const n = []; for (const { scriptPubKey: e } of t) n.push(N(e)); return fe.sha256(_.join(n)) }(t), await async function (t) { const n = []; for (const { sequence: e } of t) n.push(K(e)); return fe.sha256(_.join(n)) if (((3 & i) < 2 || (3 & i) > 3) && b.push(await async function (t) { const n = []; for (constM { value: e, scriptPubKey: r } of t) n.push(j(e)), n.push(N(r)); return fe.sha256(_.join(n)) }(f)), b.push(_.num(m, 1)), g) { const { value: t, scriptPubKey: e } = Ue(u[n]); b.push(C(l), D(d), j(t), N(e), K(w)) } else b.push(_.num(n, 4).reverse()); return void 0 !== p && b.push(p), 3 == (3 & i) && b.push(await async function (t) { return fe.sha256(_.of(...j(t.value), ...N(t.scriptPubKey))) }(f[n])), void 0 !== r && b.push(_.normalize(r)M , _.num(s), _.num(a, 4)), fe.sha256(_.join(b)) function Ue(t) { if (void 0 === t.prevout) throw new Error("Prevout data missing for input: " + String(t.txid)); return t.prevout encode: N, decode: function (t) { return function (t, n = "asm") { const e = new B(t), r = [], i = e.size; let o, s, a, c = 0; for (; c < i;) switch (o = e.read(1).num, s = W(o), c++, s) { case "varint"M r.push(e.read(o).toHex()), c += o; break; case "pushdata1": a = e.read(1).reverse().num, r.push(e.read(a).toHex()), c += a + 1; break; case "pushdata2": a = e.read(2).reverse().num, r.push(e.read(a).toHex()), c += a + 2; break; case "pushdata4": a = e.read(4).reverse().num, r.push(e.read(a).toHex()), c += a + 4; break; if (!G(o)) throw new Error(`Invalid OPCODE: ${o}`); "asm" === n ? r.push(H(o)) : r.push(o); break; default: throw new Error(`Word type undefined: ${o}`) return r }(_.normalize(t)) hash: async function (t, n, e, r, i) { if (!he.includes(i)) throw new Error("Invalid hash type: " + String(i)); const { M version: o, input: s, output: a, locktime: c } = t, { txid: u, vout: f, sequence: h } = s[n], l = i > 128, d = [k(o)]; return d.push(await async function (t, n) { if (!0 === n) return _.num(0, 32); const e = []; for (const { txid: n, vout: r } of t) e.push(C(n)), e.push(D(r)); return fe.hash256(_.join(e)) }(s, l), await async function (t, n) { if (1 !== n) return _.num(0, 32); const e =M for (const { sequence: n } of t) e.push(K(n)); return fe.hash256(_.join(e)) }(s, i), C(u), D(f), N(r, !0), j(e), K(h), await async function (t, n, e) { const r = []; if (1 === e) { for (const { value: n, scriptPubKey: e } of t) r.push(j(n)), r.push(N(e)); return fe.hash256(_.join(r)) if (3 === e && n < t.length) { const { value: e, scriptPubKey: i } = t[n];M return r.push(j(e)), r.push(N(i)), fe.hash256(_.join(r)) return _.num(0, 32) }(a, n, i), V(c), _.num(i, 4).reverse()), fe.hash256(_.join(d)) }, taproot: { hash: Oe, sign: async function (t, n, e, r = {}) { const { sigflag: i = 0 } = r, o = dn.schnorr.sign, s = await Oe(n, e, r), a = await o(s, t); return 0 === i ? _.raw(a).hex : _.of(...a, i).hex }, verify: async function (t, n, e = {M const i = function (t) { return ("string" == typeof t || t instanceof Uint8Array) && (t = L(t)), { ...t } }(t), { witness: o } = i.input[n]; if (!Array.isArray(o) || o.length < 1) return le("Invalid witness data: " + String(o), r); if (80 === Z(o[o.length - 1])[0] && o.pop(), o.length < 1) return le("Invalid witness data: " + String(o), r); const s = new B(Z(o[0])), a = s.read(64), c = i.input[n].prevout, u = Z(c?.scriptPubM let f, h; if (1 === s.size && (e.sigflag = s.read(1).num, 0 === e.sigflag)) return le("0x00 is not a valid appended sigflag!", r); if (o.length > 1 && (h = Z(o.pop())), o.length > 1 && h instanceof Uint8Array) { const t = N(o.pop()), n = 254 & h[0]; f = await Ae(t, n), e.extention = f const l = await Oe(i, n, e), d = dn.schnorr.verify; return await d(a, l, u) ? !(void 0 !== h && void 0 !== f M && !await ve(u, h, f)) || le("Invalid cblock!", r) : le("Invalid signature!", r) getTag: be, getLeaf: Ae, getBranch: xe, getRoot: me, getTweak: Ee, getPubkey: async function (t, n = []) { return pe(t, n) }, getSeckey: async function (t, n = []) { return pe(t, n, !0).then((t => t[0])) }, getPath: async function t(n, e, r = [e], i = de, o = 0) { const s = _.normalize(n), [a, c, u] = await Se(r, e), f = [_.num(i + funcM if (0 === t || 1 === t) return t; if (2 === t || "02" === t) return 0; if (3 === t || "03" === t) return 1; throw new Error("Invalid parity bit:" + String(t)) }(o)), _.normalize(n)]; r.length > 1 && u.forEach((t => f.push(_.hex(t)))); const h = _.join(f), l = ge(s, await Ee(s, _.hex(a))).slice(1); if (!await ve(l, h, e)) { if (0 === o) return t(n, e, r, i, 1); throw new Error("PatM h checking failed! Unable to generate path.") return h.hex }, checkPath: ve, tweakSeckey: ye, tweakPubkey: ge, encodeAddress: function (t, n = "bc") { return (t = _.normalize(t)).length > 32 && (t = t.slice(1, 33)), _.raw(t).toBech32(n, 1) }, decodeAddress: function (t) { return _.bech32(t, 1) encode: function (t, n) { const { version: e, input: r, output: i, locktime: o } = t, s = !0 !== n && function (tM for (const n of t) { const { witness: t } = n; if ("string" == typeof t || t instanceof Uint8Array || Array.isArray(t) && t.length > 0) return !0 return !1 }(r), a = [k(e)]; s && a.push(_.hex("0001")), a.push(function (t) { const n = [_.readSize(t.length)]; for (const e of t) { const { txid: t, vout: r, scriptSig: i, sequence: o } = e; n.push(C(t)), n.push(D(r)), nM .push(N(i)), n.push(K(o)) return _.join(n) }(r)), a.push(function (t) { const n = [_.readSize(t.length)]; for (const e of t) { const { address: t, value: r, scriptPubKey: i } = e; n.push(j(r)), void 0 !== t ? n.push(_.bech32(t).raw) : n.push(N(i)) return _.join(n) for (const t of r) s && void 0 !== t?.witness && a.push($(t.witness)); return a.push(V(o)), M }, decode: L return t.Script = _e, t.Sig = Be, t.Tap = Ie, t.Tx = He, t <script> const BTON = window.bton </script> <script>var cryptoUtils = function (n) { const { crypto: t } = globalThis, e = BigInt(0), r = BigInt(1), i = BigInt(2), s = BigInt(3), o = BigInt(8), a = Object.freeze({ a: e, b: BigInt(7), P: BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), n: BigInt("0xfffffffffffffffffffffffffM ffffffebaaedce6af48a03bbfd25e8cd0364141"), h: r, Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee") }), c = (n, t) => (n + t / i) / t, u = { beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), splitScalar(n) { const { n: t } = a, e = BigInt("0x3086d221a7d46bcde86c90e492M 84eb15"), i = -r * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), s = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), o = e, u = BigInt("0x100000000000000000000000000000000"), f = c(o * n, t), h = c(-i * n, t); let l = $(n - f * e - h * s, t), y = $(-f * i - h * o, t); const d = l > u, g = y > u; if (d && (l = t - l), g && (y = t - y), l > u || y > u) throw new Error("splitScalarEndo: Endomorphism failed, k=" + n); return { k1neg: d, k1: l, k2neg: g, k2: y } } }, f = 32, h = 32, l = 32, y = f + 1, d = 2 * f + 1; funcM tion g(n) { const { a: t, b: e } = a, r = $(n * n), i = $(r * n); return $(i + t * n + e) } const w = a.a === e; class m extends Error { constructor(n) { super(n) } } function p(n) { if (!(n instanceof b)) throw new TypeError("JacobianPoint expected") } class b { constructor(n, t, e) { this.x = n, this.y = t, this.z = e } static get BASE() { return new b(a.Gx, a.Gy, r) } static get ZERO() { return new b(e, r, e) } static fromAffine(n) { if (!(n instanceof E)) throw new TypeError("JacobianPoint#fromAffine: expected M Point"); return n.equals(E.ZERO) ? b.ZERO : new b(n.x, n.y, r) } static toAffineBatch(n) { const t = function (n, t = a.P) { const i = new Array(n.length), s = V(n.reduce(((n, r, s) => r === e ? n : (i[s] = n, $(n * r, t))), r), t); return n.reduceRight(((n, r, s) => r === e ? n : (i[s] = $(n * i[s], t), $(n * r, t))), s), i }(n.map((n => n.z))); return n.map(((n, e) => n.toAffine(t[e]))) } static normalizeZ(n) { return b.toAffineBatch(n).map(b.fromAffine) } equals(n) { p(n); const { x: t, y: e, z: r } = this, { x:M i, y: s, z: o } = n, a = $(r * r), c = $(o * o), u = $(t * c), f = $(i * a), h = $($(e * o) * c), l = $($(s * r) * a); return u === f && h === l } negate() { return new b(this.x, $(-this.y), this.z) } double() { const { x: n, y: t, z: e } = this, r = $(n * n), a = $(t * t), c = $(a * a), u = n + a, f = $(i * ($(u * u) - r - c)), h = $(s * r), l = $(h * h), y = $(l - i * f), d = $(h * (f - y) - o * c), g = $(i * t * e); return new b(y, d, g) } add(n) { p(n); const { x: t, y: r, z: s } = this, { x: o, y: a, z: c } =M n; if (o === e || a === e) return this; if (t === e || r === e) return n; const u = $(s * s), f = $(c * c), h = $(t * f), l = $(o * u), y = $($(r * c) * f), d = $($(a * s) * u), g = $(l - h), w = $(d - y); if (g === e) return w === e ? this.double() : b.ZERO; const m = $(g * g), x = $(g * m), A = $(h * m), E = $(w * w - x - i * A), v = $(w * (A - E) - y * x), S = $(s * c * g); return new b(E, v, S) } subtract(n) { return this.add(n.negate()) } multiplyUnsafe(n) { const t = b.ZERO; if ("bigint" == typeof n && n ===M e) return t; let i = O(n); if (i === r) return this; if (!w) { let n = t, s = this; for (; i > e;)i & r && (n = n.add(s)), s = s.double(), i >>= r; return n } let { k1neg: s, k1: o, k2neg: a, k2: c } = u.splitScalar(i), f = t, h = t, l = this; for (; o > e || c > e;)o & r && (f = f.add(l)), c & r && (h = h.add(l)), l = l.double(), o >>= r, c >>= r; return s && (f = f.negate()), a && (h = h.negate()), h = new b($(h.x * u.beta), h.y, h.z), f.add(h) } precomputeWindow(n) { const t = w ? 128 / n + 1 : 256 / n + 1, e =M []; let r = this, i = r; for (let s = 0; s < t; s++) { i = r, e.push(i); for (let t = 1; t < 2 ** (n - 1); t++)i = i.add(r), e.push(i); r = i.double() } return e } wNAF(n, t) { !t && this.equals(b.BASE) && (t = E.BASE); const e = t && t._WINDOW_SIZE || 1; if (256 % e) throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2"); let i = t && A.get(t); i || (i = this.precomputeWindow(e), t && 1 !== e && (i = b.normalizeZ(i), A.set(t, i))); let s = b.ZERO, o = b.BASE; const a = 1 + (w ? 128 / e :M 256 / e), c = 2 ** (e - 1), u = BigInt(2 ** e - 1), f = 2 ** e, h = BigInt(e); for (let t = 0; t < a; t++) { const e = t * c; let a = Number(n & u); n >>= h, a > c && (a -= f, n += r); const l = e, y = e + Math.abs(a) - 1, d = t % 2 != 0, g = a < 0; 0 === a ? o = o.add(x(d, i[l])) : s = s.add(x(g, i[y])) } return { p: s, f: o } } multiply(n, t) { let e, r, i = O(n); if (w) { const { k1neg: n, k1: s, k2neg: o, k2: a } = u.splitScalar(i); let { p: c, f: f } = this.wNAF(s, t), { p: h, f: l } = this.wNAF(a, t); c = x(M n, c), h = x(o, h), h = new b($(h.x * u.beta), h.y, h.z), e = c.add(h), r = f.add(l) } else { const { p: n, f: s } = this.wNAF(i, t); e = n, r = s } return b.normalizeZ([e, r])[0] } toAffine(n) { const { x: t, y: e, z: i } = this, s = this.equals(b.ZERO); null == n && (n = s ? o : V(i)); const a = n, c = $(a * a), u = $(c * a), f = $(t * c), h = $(e * u), l = $(i * a); if (s) return E.ZERO; if (l !== r) throw new Error("invZ was invalid"); return new E(f, h) } } function x(n, t) { const e = t.negate(); return n ? eM : t } const A = new WeakMap; let E = class { constructor(n, t) { this.x = n, this.y = t } _setWindowSize(n) { this._WINDOW_SIZE = n, A.delete(this) } static get BASE() { return new E(a.Gx, a.Gy) } static get ZERO() { return new E(e, e) } hasEvenY() { return this.y % i === e } static fromCompressedHex(n) { const t = 32 === n.length, e = C(t ? n : n.subarray(1)); if (!Y(e)) throw new Error("Point is not on curve"); let o = function (n) { const { P: t } = a, e = BigInt(6), r = BigInt(11), o = BigInt(22), c = BigInt(2M 3), u = BigInt(44), f = BigInt(88), h = n * n * n % t, l = h * h * n % t, y = K(l, s) * l % t, d = K(y, s) * l % t, g = K(d, i) * h % t, w = K(g, r) * g % t, m = K(w, o) * w % t, p = K(m, u) * m % t, b = K(p, f) * p % t, x = K(b, u) * m % t, A = K(x, s) * l % t, E = K(A, c) * w % t, v = K(E, e) * h % t, S = K(v, i); if (S * S % t !== n) throw new Error("Cannot find square root"); return S }(g(e)); const c = (o & r) === r; if (t) c && (o = $(-o)); else { 1 == (1 & n[0]) !== c && (o = $(-o)) } const u = new E(e, o); M return u.assertValidity(), u } static fromUncompressedHex(n) { const t = C(n.subarray(1, f + 1)), e = C(n.subarray(f + 1, 2 * f + 1)), r = new E(t, e); return r.assertValidity(), r } static fromHex(n) { const t = T(n), e = t.length, r = t[0]; if (e === f) return this.fromCompressedHex(t); if (e === y && (2 === r || 3 === r)) return this.fromCompressedHex(t); if (e === d && 4 === r) return this.fromUncompressedHex(t); throw new Error(`Point.fromHex: received invalid point. Expected 32-${y} compressed bytes or ${d} uM ncompressed bytes, not ${e}`) } static fromPrivateKey(n) { return E.BASE.multiply(F(n)) } static fromSignature(n, t, e) { const { r: r, s: i } = J(t); if (![0, 1, 2, 3].includes(e)) throw new Error("Cannot recover: invalid recovery bit"); const s = q(T(n)), { n: o } = a, c = 2 === e || 3 === e ? r + o : r, u = V(c, o), f = $(-s * u, o), h = $(i * u, o), l = 1 & e ? "03" : "02", y = E.fromHex(l + N(c)), d = E.BASE.multiplyAndAddUnsafe(y, f, h); if (!d) throw new Error("Cannot recover signature: point at infinify"); M return d.assertValidity(), d } toRawBytes(n = !1) { return P(this.toHex(n)) } toHex(n = !1) { const t = N(this.x); if (n) { return `${this.hasEvenY() ? "02" : "03"}${t}` } return `04${t}${N(this.y)}` } toHexX() { return this.toHex(!0).slice(2) } toRawX() { return this.toRawBytes(!0).slice(1) } assertValidity() { const n = "Point is not on elliptic curve", { x: t, y: r } = this; if (!Y(t) || !Y(r)) throw new Error(n); const i = $(r * r); if ($(i - g(t)) !== e) throw new Error(n) } equals(n) { return this.x === n.x &M & this.y === n.y } negate() { return new E(this.x, $(-this.y)) } double() { return b.fromAffine(this).double().toAffine() } add(n) { return b.fromAffine(this).add(b.fromAffine(n)).toAffine() } subtract(n) { return this.add(n.negate()) } multiply(n) { return b.fromAffine(this).multiply(n, this).toAffine() } multiplyAndAddUnsafe(n, t, i) { const s = b.fromAffine(this), o = t === e || t === r || this !== E.BASE ? s.multiplyUnsafe(t) : s.multiply(t), a = b.fromAffine(n).multiplyUnsafe(i), c = o.add(a); return c.equals(M b.ZERO) ? void 0 : c.toAffine() } }; function v(n) { return Number.parseInt(n[0], 16) >= 8 ? "00" + n : n } function S(n) { if (n.length < 2 || 2 !== n[0]) throw new Error(`Invalid signature integer tag: ${I(n)}`); const t = n[1], e = n.subarray(2, t + 2); if (!t || e.length !== t) throw new Error("Invalid signature integer: wrong length"); if (0 === e[0] && e[1] <= 127) throw new Error("Invalid signature integer: trailing length"); return { data: C(e), left: n.subarray(t + 2) } } class B { constructor(n, t) { thisM .r = n, this.s = t, this.assertValidity() } static fromCompact(n) { const t = n instanceof Uint8Array, e = "Signature.fromCompact"; if ("string" != typeof n && !t) throw new TypeError(`${e}: Expected string or Uint8Array`); const r = t ? I(n) : n; if (128 !== r.length) throw new Error(`${e}: Expected 64-byte hex`); return new B(k(r.slice(0, 64)), k(r.slice(64, 128))) } static fromDER(n) { const t = n instanceof Uint8Array; if ("string" != typeof n && !t) throw new TypeError("Signature.fromDER: Expected string or UiM nt8Array"); const { r: e, s: r } = function (n) { if (n.length < 2 || 48 != n[0]) throw new Error(`Invalid signature tag: ${I(n)}`); if (n[1] !== n.length - 2) throw new Error("Invalid signature: incorrect length"); const { data: t, left: e } = S(n.subarray(2)), { data: r, left: i } = S(e); if (i.length) throw new Error(`Invalid signature: left bytes after parsing: ${I(i)}`); return { r: t, s: r } }(t ? n : P(n)); return new B(e, r) } static fromHex(n) { return this.fromDER(n) } assertValidity() { const { r: n, s: M t } = this; if (!X(n)) throw new Error("Invalid Signature: r must be 0 < r < n"); if (!X(t)) throw new Error("Invalid Signature: s must be 0 < s < n") } hasHighS() { const n = a.n >> r; return this.s > n } normalizeS() { return this.hasHighS() ? new B(this.r, $(-this.s, a.n)) : this } toDERRawBytes() { return P(this.toDERHex()) } toDERHex() { const n = v(_(this.s)), t = v(_(this.r)), e = n.length / 2, r = t.length / 2, i = _(e), s = _(r); return `30${_(r + e + 4)}02${s}${t}02${i}${n}` } toRawBytes() { return this.tM oDERRawBytes() } toHex() { return this.toDERHex() } toCompactRawBytes() { return P(this.toCompactHex()) } toCompactHex() { return N(this.r) + N(this.s) } } function U(...n) { if (!n.every((n => n instanceof Uint8Array))) throw new Error("Uint8Array list expected"); if (1 === n.length) return n[0]; const t = n.reduce(((n, t) => n + t.length), 0), e = new Uint8Array(t); for (let t = 0, r = 0; t < n.length; t++) { const i = n[t]; e.set(i, r), r += i.length } return e } const H = Array.from({ length: 256 }, ((n, t) => M t.toString(16).padStart(2, "0"))); function I(n) { if (!(n instanceof Uint8Array)) throw new Error("Expected Uint8Array"); let t = ""; for (let e = 0; e < n.length; e++)t += H[n[e]]; return t } const z = BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"); function N(n) { if ("bigint" != typeof n) throw new Error("Expected bigint"); if (!(e <= n && n < z)) throw new Error("Expected number 0 <= n < 2^256"); return n.toString(16).padStart(64, "0") } function R(n) { const t = P(N(n)); if (32 M !== t.length) throw new Error("Error: expected 32 bytes"); return t } function _(n) { const t = n.toString(16); return 1 & t.length ? `0${t}` : t } function k(n) { if ("string" != typeof n) throw new TypeError("hexToNumber: expected string, got " + typeof n); return BigInt(`0x${n}`) } function P(n) { if ("string" != typeof n) throw new TypeError("hexToBytes: expected string, got " + typeof n); if (n.length % 2) throw new Error("hexToBytes: received invalid unpadded hex" + n.length); const t = new Uint8Array(n.lengtM h / 2); for (let e = 0; e < t.length; e++) { const r = 2 * e, i = n.slice(r, r + 2), s = Number.parseInt(i, 16); if (Number.isNaN(s) || s < 0) throw new Error("Invalid byte sequence"); t[e] = s } return t } function C(n) { return k(I(n)) } function T(n) { return n instanceof Uint8Array ? Uint8Array.from(n) : P(n) } function O(n) { if ("number" == typeof n && Number.isSafeInteger(n) && n > 0) return BigInt(n); if ("bigint" == typeof n && X(n)) return n; throw new TypeError("Expected valid private scalar: 0 < scalar M < curve.n") } function $(n, t = a.P) { const r = n % t; return r >= e ? r : t + r } function K(n, t) { const { P: r } = a; let i = n; for (; t-- > e;)i *= i, i %= r; return i } function V(n, t = a.P) { if (n === e || t <= e) throw new Error(`invert: expected positive integers, got n=${n} mod=${t}`); let i = $(n, t), s = t, o = e, c = r; for (; i !== e;) { const n = s % i, t = o - c * (s / i); s = i, i = n, o = c, c = t } if (s !== r) throw new Error("invert: does not exist"); return $(o, t) } function q(n, t = !1) M { const e = function (n) { const t = 8 * n.length - 8 * h, e = C(n); return t > 0 ? e >> BigInt(t) : e }(n); if (t) return e; const { n: r } = a; return e >= r ? e - r : e } let D, Z; class j { constructor(n, t) { if (this.hashLen = n, this.qByteLen = t, "number" != typeof n || n < 2) throw new Error("hashLen must be a number"); if ("number" != typeof t || t < 2) throw new Error("qByteLen must be a number"); this.v = new Uint8Array(n).fill(1), this.k = new Uint8Array(n).fill(0), this.counter = 0 } hmac(...n) { retuM rn pn.hmacSha256(this.k, ...n) } hmacSync(...n) { return Z(this.k, ...n) } checkSync() { if ("function" != typeof Z) throw new m("hmacSha256Sync needs to be set") } incr() { if (this.counter >= 1e3) throw new Error("Tried 1,000 k values for sign(), all were invalid"); this.counter += 1 } async reseed(n = new Uint8Array) { this.k = await this.hmac(this.v, Uint8Array.from([0]), n), this.v = await this.hmac(this.v), 0 !== n.length && (this.k = await this.hmac(this.v, Uint8Array.from([1]), n), this.v = await this.hmac(M this.v)) } reseedSync(n = new Uint8Array) { this.checkSync(), this.k = this.hmacSync(this.v, Uint8Array.from([0]), n), this.v = this.hmacSync(this.v), 0 !== n.length && (this.k = this.hmacSync(this.v, Uint8Array.from([1]), n), this.v = this.hmacSync(this.v)) } async generate() { this.incr(); let n = 0; const t = []; for (; n < this.qByteLen;) { this.v = await this.hmac(this.v); const e = this.v.slice(); t.push(e), n += this.v.length } return U(...t) } generateSync() { this.checkSync(), this.incr(); let n = 0; constM t = []; for (; n < this.qByteLen;) { this.v = this.hmacSync(this.v); const e = this.v.slice(); t.push(e), n += this.v.length } return U(...t) } } function X(n) { return e < n && n < a.n } function Y(n) { return e < n && n < a.P } function W(n, t, i, s = !0) { const { n: o } = a, c = q(n, !0); if (!X(c)) return; const u = V(c, o), f = E.BASE.multiply(c), h = $(f.x, o); if (h === e) return; const l = $(u * $(t + i * h, o), o); if (l === e) return; let y = new B(h, l), d = (f.x === y.r ? 0 : 2) | Number(f.y & r); retM urn s && y.hasHighS() && (y = y.normalizeS(), d ^= 1), { sig: y, recovery: d } } function F(n) { let t; if ("bigint" == typeof n) t = n; else if ("number" == typeof n && Number.isSafeInteger(n) && n > 0) t = BigInt(n); else if ("string" == typeof n) { if (n.length !== 2 * h) throw new Error("Expected 32 bytes of private key"); t = k(n) } else { if (!(n instanceof Uint8Array)) throw new TypeError("Expected valid private key"); if (n.length !== h) throw new Error("Expected 32 bytes of private key"); t = C(n) } if (!XM (t)) throw new Error("Expected private key: 0 < key < n"); return t } function M(n) { return n instanceof E ? (n.assertValidity(), n) : E.fromHex(n) } function J(n) { if (n instanceof B) return n.assertValidity(), n; try { return B.fromDER(n) } catch (t) { return B.fromCompact(n) } } function L(n) { const t = n instanceof Uint8Array, e = "string" == typeof n, r = (t || e) && n.length; return t ? r === y || r === d : e ? r === 2 * y || r === 2 * d : n instanceof E } function G(n, t, e = !1) { if (L(n)) throw new TypM eError("getSharedSecret: first arg must be private key"); if (!L(t)) throw new TypeError("getSharedSecret: second arg must be public key"); const r = M(t); return r.assertValidity(), r.multiply(F(n)).toRawBytes(e) } function Q(n) { return C(n.length > f ? n.slice(0, f) : n) } function nn(n) { const t = Q(n), r = $(t, a.n); return tn(r < e ? t : r) } function tn(n) { return R(n) } function en(n, t, e) { if (null == n) throw new Error(`sign: expected valid message hash, not "${n}"`); const r = T(n), i = F(t), s = [tnM (i), nn(r)]; if (null != e) { !0 === e && (e = pn.randomBytes(f)); const n = T(e); if (n.length !== f) throw new Error(`sign: Expected ${f} bytes of extra data`); s.push(n) } return { seed: U(...s), m: Q(r), d: i } } function rn(n, t) { const { sig: e, recovery: r } = n, { der: i, recovered: s } = Object.assign({ canonical: !0, der: !0 }, t), o = i ? e.toDERRawBytes() : e.toCompactRawBytes(); return s ? [o, r] : o } async function sn(n, t, e = {}) { const { seed: r, m: i, d: s } = en(n, t, e.extraEntropy), o = new M j(l, h); let a; for (await o.reseed(r); !(a = W(await o.generate(), i, s, e.canonical));)await o.reseed(); return rn(a, e) } const on = { strict: !0 }; function an(n, t, e, r = on) { let i; try { i = J(n), t = T(t) } catch (n) { return !1 } const { r: s, s: o } = i; if (r.strict && i.hasHighS()) return !1; const c = q(t); let u; try { u = M(e) } catch (n) { return !1 } const { n: f } = a, h = V(o, f), l = $(c * h, f), y = $(s * h, f), d = E.BASE.multiplyAndAddUnsafe(u, l, y); if (!d) return !1; return $(d.x, f) ===M s } function cn(n) { return $(C(n), a.n) } class un { constructor(n, t) { this.r = n, this.s = t, this.assertValidity() } static fromHex(n) { const t = T(n); if (64 !== t.length) throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${t.length}`); const e = C(t.subarray(0, 32)), r = C(t.subarray(32, 64)); return new un(e, r) } assertValidity() { const { r: n, s: t } = this; if (!Y(n) || !X(t)) throw new Error("Invalid signature") } toHex() { return N(this.r) + N(this.s) } toRawBytes() { return P(thM is.toHex()) } } class fn { constructor(n, t, e = pn.randomBytes()) { if (null == n) throw new TypeError(`sign: Expected valid message, not "${n}"`); this.m = T(n); const { x: r, scalar: i } = this.getScalar(F(t)); if (this.px = r, this.d = i, this.rand = T(e), 32 !== this.rand.length) throw new TypeError("sign: Expected 32 bytes of aux randomness") } getScalar(n) { const t = E.fromPrivateKey(n), e = t.hasEvenY() ? n : a.n - n; return { point: t, scalar: e, x: t.toRawX() } } initNonce(n, t) { return R(n ^ C(t)) } fiM nalizeNonce(n) { const t = $(C(n), a.n); if (t === e) throw new Error("sign: Creation of signature failed. k is zero"); const { point: r, x: i, scalar: s } = this.getScalar(t); return { R: r, rx: i, k: s } } finalizeSig(n, t, e, r) { return new un(n.x, $(t + e * r, a.n)).toRawBytes() } error() { throw new Error("sign: Invalid signature produced") } async calc() { const { m: n, d: t, px: e, rand: r } = this, i = pn.taggedHash, s = this.initNonce(t, await i(wn.aux, r)), { R: o, rx: a, k: c } = this.finalizeNonce(awaiM t i(wn.nonce, s, e, n)), u = cn(await i(wn.challenge, a, e, n)), f = this.finalizeSig(o, c, u, t); return await yn(f, n, e) || this.error(), f } calcSync() { const { m: n, d: t, px: e, rand: r } = this, i = pn.taggedHashSync, s = this.initNonce(t, i(wn.aux, r)), { R: o, rx: a, k: c } = this.finalizeNonce(i(wn.nonce, s, e, n)), u = cn(i(wn.challenge, a, e, n)), f = this.finalizeSig(o, c, u, t); return dn(f, n, e) || this.error(), f } } function hn(n, t, e) { const r = n instanceof un, i = r ? n : un.fromHex(n); retuM rn r && i.assertValidity(), { ...i, m: T(t), P: M(e) } } function ln(n, t, e, r) { const i = E.BASE.multiplyAndAddUnsafe(t, F(e), $(-r, a.n)); return !(!i || !i.hasEvenY() || i.x !== n) } async function yn(n, t, e) { try { const { r: r, s: i, m: s, P: o } = hn(n, t, e), a = cn(await pn.taggedHash(wn.challenge, R(r), o.toRawX(), s)); return ln(r, o, i, a) } catch (n) { return !1 } } function dn(n, t, e) { try { const { r: r, s: i, m: s, P: o } = hn(n, t, e), a = cn(pn.taggedHashSync(wn.challenge, R(r), o.toRawX(), sM )); return ln(r, o, i, a) } catch (n) { if (n instanceof m) throw n; return !1 } } const gn = { Signature: un, getPublicKey: function (n) { return E.fromPrivateKey(n).toRawX() }, sign: async function (n, t, e) { return new fn(n, t, e).calc() }, verify: yn, signSync: function (n, t, e) { return new fn(n, t, e).calcSync() }, verifySync: dn }; E.BASE._setWindowSize(8); const wn = { challenge: "BIP0340/challenge", aux: "BIP0340/aux", nonce: "BIP0340/nonce" }, mn = {}, pn = { bytesToHex: I, hexToBytes: P, concatBytes: UM , mod: $, invert: V, isValidPrivateKey(n) { try { return F(n), !0 } catch (n) { return !1 } }, _bigintTo32Bytes: R, _normalizePrivateKey: F, hashToPrivateKey: n => { n = T(n); const t = h + 8; if (n.length < t || n.length > 1024) throw new Error("Expected valid bytes of private key as per FIPS 186"); return R($(C(n), a.n - r) + r) }, randomBytes: (n = 32) => t.getRandomValues(new Uint8Array(n)), randomPrivateKey: () => pn.hashToPrivateKey(pn.randomBytes(h + 8)), precompute(n = 8, t = E.BASE) { const e = t === E.BASM E ? t : new E(t.x, t.y); return e._setWindowSize(n), e.multiply(s), e }, sha256: async (...n) => { const e = await t.subtle.digest("SHA-256", U(...n)); return new Uint8Array(e) }, hmacSha256: async (n, ...e) => { const r = await t.subtle.importKey("raw", n, { name: "HMAC", hash: { name: "SHA-256" } }, !1, ["sign"]), i = U(...e), s = await t.subtle.sign("HMAC", r, i); return new Uint8Array(s) }, sha256Sync: void 0, hmacSha256Sync: void 0, taggedHash: async (n, ...t) => { let e = mn[n]; if (void 0 === e) { const t = M await pn.sha256(Uint8Array.from(n, (n => n.charCodeAt(0)))); e = U(t, t), mn[n] = e } return pn.sha256(e, ...t) }, taggedHashSync: (n, ...t) => { if ("function" != typeof D) throw new m("sha256Sync is undefined, you need to set it"); let e = mn[n]; if (void 0 === e) { const t = D(Uint8Array.from(n, (n => n.charCodeAt(0)))); e = U(t, t), mn[n] = e } return D(e, ...t) }, _JacobianPoint: b }; Object.defineProperties(pn, { sha256Sync: { configurable: !1, get: () => D, set(n) { D || (D = n) } }, hmacSha256Sync: { configM urable: !1, get: () => Z, set(n) { Z || (Z = n) } } }); var bn = Object.freeze({ __proto__: null, CURVE: a, Point: E, Signature: B, getPublicKey: function (n, t = !1) { return E.fromPrivateKey(n).toRawBytes(t) }, getSharedSecret: G, recoverPublicKey: function (n, t, e, r = !1) { return E.fromSignature(n, t, e).toRawBytes(r) }, schnorr: gn, sign: sn, signSync: function (n, t, e = {}) { const { seed: r, m: i, d: s } = en(n, t, e.extraEntropy), o = new j(l, h); let a; for (o.reseedSync(r); !(a = W(o.generateSync(), i,M s, e.canonical));)o.reseedSync(); return rn(a, e) }, utils: pn, verify: an }); const xn = new TextEncoder, An = [{ name: "base58", charset: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" }, { name: "base64", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" }, { name: "base64url", charset: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" }]; function En(n) { for (const t of An) if (t.name === n) return t.charset; throw TypeError("Charset does not exist: " +M n) } const vn = { encode: function (n, t, e = !1) { "string" == typeof n && (n = xn.encode(n)); const r = En(t), i = r.length, s = []; let o, a, c, u = "", f = 0; for (o = 0; o < n.length; o++)for (f = 0, a = n[o], u += a > 0 || (u.length ^ o) > 0 ? "" : "1"; f in s || a > 0;)c = s[f], c = c > 0 ? 256 * c + a : a, a = c / i | 0, s[f] = c % i, f++; for (; f-- > 0;)u += r[s[f]]; return e && u.length % 4 > 0 ? u + "=".repeat(4 - u.length % 4) : u }, decode: function (n, t) { const e = En(t), r = e.length, i = [], s =M []; n = n.replace("=", ""); let o, a, c, u = 0; for (o = 0; o < n.length; o++) { if (u = 0, a = e.indexOf(n[o]), a < 0) throw new Error(`Character range out of bounds: ${a}`); for (a > 0 || (s.length ^ o) > 0 || s.push(0); u in i || a > 0;)c = i[u], c = c > 0 ? c * r + a : a, a = c >> 8, i[u] = c % 256, u++ } for (; u-- > 0;)s.push(i[u]); return new Uint8Array(s) } }, Sn = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", Bn = [996825010, 642813549, 513874426, 1027748829, 705979059], Un = { BECH32: "bech32", BECH32M: "bech32m" M }; function Hn(n) { switch (n) { case Un.BECH32: return 1; case Un.BECH32M: return 734539939; default: throw new Error(`Unrecognized encoding: ${n}`) } } function In(n) { let t = 1; for (let e = 0; e < n.length; ++e) { const r = t >> 25; t = (33554431 & t) << 5 ^ n[e]; for (let n = 0; n < 5; ++n)(r >> n & 1) > 0 && (t ^= Bn[n]) } return t } function zn(n) { const t = []; let e; for (e = 0; e < n.length; ++e)t.push(n.charCodeAt(e) >> 5); for (t.push(0), e = 0; e < n.length; ++e)t.push(31 & n.charCodeAt(e)); return tM } function Nn(n, t, e, r = !0) { const i = []; let s = 0, o = 0; const a = (1 << e) - 1, c = (1 << t + e - 1) - 1; for (const r of n) { if (r < 0 || r >> t > 0) return []; for (s = (s << t | r) & c, o += t; o >= e;)o -= e, i.push(s >> o & a) } if (r) o > 0 && i.push(s << e - o & a); else if (o >= t || (s << e - o & a) > 0) return []; return i } function Rn(n, t, e) { const r = t.concat(function (n, t, e) { const r = In(zn(n).concat(t).concat([0, 0, 0, 0, 0, 0])) ^ Hn(e), i = []; for (let n = 0; n < 6; ++n)i.push(rM >> 5 * (5 - n) & 31); return i }(n, t, e)); let i = n + "1"; for (let n = 0; n < r.length; ++n)i += Sn.charAt(r[n]); return i } function _n(n, t) { const e = t > 0 ? "bech32m" : "bech32"; if (!function (n) { let t, e, r = !1, i = !1; for (t = 0; t < n.length; ++t) { if (e = n.charCodeAt(t), e < 33 || e > 126) return !1; e >= 97 && e <= 122 && (r = !0), e >= 65 && e <= 90 && (i = !0) } return !(r && i) }(n)) return { hrp: null, data: [255] }; if (!function (n) { const t = n.lastIndexOf("1"); return !(t < 1 || t + 7M > n.length || n.length > 90) }(n = n.toLowerCase())) return { hrp: null, data: [255] }; const r = [], i = n.lastIndexOf("1"), s = n.substring(0, i); for (let t = i + 1; t < n.length; ++t) { const e = Sn.indexOf(n.charAt(t)); if (-1 === e) return { hrp: null, data: [255] }; r.push(e) } return function (n, t, e) { return In(zn(n).concat(t)) === Hn(e) }(s, r, e) ? { hrp: s, data: r.slice(0, r.length - 6) } : { hrp: null, data: [255] } } function kn(n, t = 0) { const e = n.split("1", 1)[0], { hrp: r, data: i } = _n(n,M t), s = Nn(i.slice(1), 5, 8, !1), o = s.length; switch (!0) { case e !== r: throw new Error("Returned hrp string is invalid."); case null === s || o < 2 || o > 40: throw new Error("Decoded string is invalid or out of spec."); case i[0] > 16: throw new Error("Returned version bit is out of range."); case 0 === i[0] && 20 !== o && 32 !== o: throw new Error("Decoded string does not match version 0 spec."); case 0 === i[0] && 0 !== t: case 0 !== i[0] && 1 !== t: throw new Error("Decoded version bit does not match."); M default: return Uint8Array.from(s) } } const Pn = { encode: function (n, t = "bch", e = 0) { const r = Rn(t, [e, ...Nn([...n], 8, 5)], e > 0 ? "bech32m" : "bech32"); return kn(r, e), r }, decode: kn }, Cn = new TextEncoder, Tn = new TextDecoder; function On(n) { return Cn.encode(n) } function $n(n) { const t = []; let e, r = 0; if (n.length % 2 > 0) throw new Error(`Invalid hex string length: ${n.length}`); for (e = 0; e < n.length; e += 2)t[r] = parseInt(n.slice(e, e + 2), 16), r += 1; return Uint8Array.from(t) } M function Kn(n) { const t = []; for (; n > 0;) { const e = 255 & n; t.push(e), n = (n - e) / 256 } return Uint8Array.from(t) } function Vn(n) { const t = []; for (; n > 0n;) { const e = 0xffn & n; t.push(Number(e)), n = (n - e) / 256n } return Uint8Array.from(t) } function qn(n) { return Tn.decode(n) } function Dn(n) { let t, e = 0; for (t = n.length - 1; t >= 0; t--)e = 256 * e + n[t]; return Number(e) } function Zn(n) { let t, e = 0n; for (t = n.length - 1; t >= 0; t--)e = 256n * e + BigInt(n[t]); return BigInt(e)M } async function jn(n) { return crypto.subtle.digest("SHA-256", n).then((n => new Uint8Array(n))) } async function Xn(n) { return jn(await jn(n)) } const { crypto: Yn } = globalThis; class Wn extends Uint8Array { static { this.num = (n, t, e = "le") => new Wn(Kn(n), t, e) } static { this.big = (n, t, e = "le") => new Wn(Vn(n), t, e) } static async b58check(n) { const t = vn.decode(n, "base58"); return new Wn(await async function (n) { const t = n.slice(0, -4), e = n.slice(-4); if ((await Xn(t)).slice(0, 4).toStrinM g() !== e.toString()) throw new Error("Invalid checksum!"); return t }(t)) } static { this.buff = (n, t) => new Wn(function (n) { if (n instanceof ArrayBuffer) return new Uint8Array(n); if (n instanceof Uint8Array) return n; const t = typeof n; switch (t) { case "bigint": return Vn(n); case "boolean": return Uint8Array.of(n); case "number": return Kn(n); case "string": return null !== n.match(/^(02|03)*[0-9a-fA-F]{64}$/) ? $n(n) : Cn.encode(n); default: throw TypeError("Unsupported format:" + t) } }(n), t) } staticM { this.raw = (n, t) => new Wn(n, t) } static { this.str = (n, t) => new Wn(On(n), t) } static { this.hex = (n, t) => new Wn($n(n), t) } static { this.json = n => new Wn(On(JSON.stringify(n))) } static { this.base64 = n => new Wn(vn.decode(n, "base64")) } static { this.b64url = n => new Wn(vn.decode(n, "base64url")) } static { this.bech32 = (n, t) => new Wn(Pn.decode(n, t)) } constructor(n, t = null, e = "be") { if (null !== t) { const e = new Uint8Array(t).fill(0); e.set(new Uint8Array(n)), n = e.buffer } return sM uper(n = "le" === e ? new Uint8Array(n).reverse() : n), this } get num() { return this.toNum() } get big() { return this.toBig() } get arr() { return this.toArr() } get str() { return this.toStr() } get hex() { return this.toHex() } get raw() { return new Uint8Array(this) } get hash() { return this.toHash() } get id() { return this.toHash().then((n => new Wn(n).hex)) } toNum(n = "le") { return Dn("le" === n ? this.reverse() : this) } toBig(n = "le") { return Zn("le" === n ? this.reverse() : this) } async toHash() {M return Yn.subtle.digest("SHA-256", this.raw).then((n => new Uint8Array(n))) } async tob58check() { return vn.encode(await async function (n) { const t = await Xn(n); return Uint8Array.of(...n, ...t.slice(0, 4)) }(this), "base58") } toArr() { return Array.from(this) } toStr() { return qn(this) } toHex() { return function (n) { const t = []; let e; for (e = 0; e < n.length; e++)t.push(n[e].toString(16).padStart(2, "0")); return t.join("") }(this) } toJson() { return JSON.parse(qn(this)) } toBytes() { return new UintM 8Array(this) } toB64url() { return vn.encode(this, "base64url") } toBase64(n) { return vn.encode(this, "base64", n) } toBech32(n, t) { return Pn.encode(this, n, t) } prepend(n) { return Wn.of(...n, ...this) } append(n) { return Wn.of(...this, ...n) } slice(n, t) { return new Wn(new Uint8Array(this).slice(n, t)) } reverse() { return new Wn(new Uint8Array(this).reverse()) } write(n, t) { this.set(n, t) } prependVarint(n = this.length) { return Wn.of(...Wn.readVarint(n), ...this) } static from(n) { return new Wn(Uint8M Array.from(n)) } static of(...n) { return new Wn(Uint8Array.of(...n)) } static join(n) { let t, e = 0; const r = n.reduce(((n, t) => n + t.length), 0), i = new Uint8Array(r); for (const r of n) for (t = 0; t < r.length; e++, t++)i[e] = r[t]; return new Wn(i, r) } static readVarint(n) { if (n < 253) return Wn.num(n, 1); if (n < 65536) return Wn.of(253, ...Wn.num(n, 2)); if (n < 4294967296) return Wn.of(254, ...Wn.num(n, 4)); if (n < 0x10000000000000000) return Wn.of(255, ...Wn.num(n, 8)); throw new Error(`Value is tM oo large: ${n}`) } static random(n = 32) { return new Wn(Yn.getRandomValues(new Uint8Array(n))) } static { this.encode = On } static { this.decode = qn } static normalize(n, t) { if (n instanceof Uint8Array) return n; if ("string" == typeof n) return Wn.hex(n, t).toBytes(); if ("number" == typeof n) return Wn.num(n, t).toBytes(); if ("bigint" == typeof n) return Wn.big(n, t).toBytes(); throw TypeError("Unrecognized format: " + typeof n) } static serialize(n) { if ("string" == typeof n) return Wn.str(n).toBytes(); iM f ("object" == typeof n) { if (n instanceof Uint8Array) return n; try { return Wn.json(n).toBytes() } catch { throw TypeError("Object is not serializable.") } } throw TypeError("Unrecognized format: " + typeof n) } static revitalize(n) { if (n instanceof Uint8Array && (n = qn(n)), "string" == typeof n) try { return JSON.parse(n) } catch { return n } return n } } const Fn = globalThis.crypto; async function Mn(n, t) { return G(Wn.normalize(n), Wn.normalize(t), !0) } async function Jn(n) { return Fn.subtle.importKey(M "raw", Wn.normalize(n), { name: "AES-CBC" }, !0, ["encrypt", "decrypt"]) } const Ln = { ecdh: Mn, import: Jn, export: async function (n) { return Fn.subtle.exportKey("raw", n).then((n => new Uint8Array(n))) }, hmac: async function (n, t = "SHA-256") { const e = { name: "HMAC", hash: t }; return Fn.subtle.importKey("raw", Wn.normalize(n), e, !1, ["sign", "verify"]) }, shared: async function (n, t) { return Jn((await Mn(n, t)).slice(1, 33)) }, generate: async function () { return Jn(Wn.random(32)) }, normalize: asyncM function (n) { return n instanceof CryptoKey ? n : Ln.import(n) } }, Gn = globalThis.crypto; class Qn { static async fromSecret(n) { const t = await Ln.normalize(n); return new Qn(t) } static async fromShared(n, t) { const e = await Ln.shared(n, t); return new Qn(e) } static async encrypt(n, t, e) { const r = Wn.normalize(t), i = await Ln.normalize(n), s = void 0 !== e ? Wn.normalize(e) : Wn.random(16); return Gn.subtle.encrypt({ name: "AES-CBC", iv: s }, i, r).then((n => Uint8Array.of(...s, ...new Uint8Array(n)))M ) } static async decrypt(n, t, e) { const r = Wn.normalize(t), i = await Ln.normalize(n), s = void 0 !== e ? r : r.slice(16), o = void 0 !== e ? Wn.normalize(e) : r.slice(0, 16); return Gn.subtle.decrypt({ name: "AES-CBC", iv: o }, i, s).then((n => new Uint8Array(n))) } constructor(n) { this.key = n } get secretKey() { return Ln.export(this.key) } get secretHex() { return this.secretKey.then((n => Wn.buff(n).toHex())) } async encrypt(n, t) { return Qn.encrypt(this.key, n, t) } async decrypt(n, t) { return Qn.decrypM t(this.key, n, t) } } class nt extends Uint8Array { static { this.N = a.n } static mod(n, t = nt.N) { return pn.mod(n, t) } static { this.isField = n => n instanceof nt } static normalize(n) { return n = et(n), n = nt.mod(n), n = pn._normalizePrivateKey(n), Wn.big(n, 32).raw } static validate(n) { return pn.isValidPrivateKey(n) } constructor(n) { super(n = nt.normalize(n)) } get buff() { return new Wn(this) } get raw() { return this } get num() { return this.buff.toBig() } get point() { return tt.fromNum(this.num) M } get hasOddY() { return this.point.hasOddY } get negated() { return this.hasOddY ? this.negate() : this } gt(n) { return new nt(n).num > this.num } lt(n) { return new nt(n).num < this.num } eq(n) { return new nt(n).num === this.num } ne(n) { return new nt(n).num !== this.num } add(n) { const t = new nt(n); return new nt(this.num + t.num) } sub(n) { const t = new nt(n); return new nt(this.num - t.num) } mul(n) { const t = new nt(n); return new nt(this.num * t.num) } pow(n, t = nt.N - 1n) { const e = new nt(n), r = M nt.mod(e.num, t); return new nt(this.num ** r) } div(n) { const t = new nt(n), e = this.pow(t.num, nt.N - 2n); return new nt(this.num * e.num) } negate() { return new nt(nt.N - this.num) } } class tt { static { this.N = a.n } static validate(n) { try { n = et(n); const t = Wn.big(n).toHex(); return E.fromHex(t).assertValidity(), !0 } catch { return !1 } } static fromNum(n) { n = et(n); const t = pn.mod(n, tt.N), e = E.BASE.multiply(t); return new tt(e.x, e.y) } static fromX(n) { n = et(n); const t = Wn.big(n).toHexM (); return tt.from(E.fromHex(t)) } static from(n) { return new tt(n.x, n.y) } constructor(n, t) { this.__p = new E(n, t), this.__x = this.__p.x, this.__y = this.__p.y, this.__p.assertValidity() } get p() { return this.__p } get buff() { return new Wn(this.rawX.slice(1)) } get hex() { return this.buff.hex } get hasOddY() { return !this.__p.hasEvenY() } get rawX() { const n = this.__p.hasEvenY() ? 2 : 3, t = Wn.big(this.__x); return Uint8Array.of(n, ...t) } get rawY() { return Wn.big(this.__y) } get x() { return thisM .__x } get y() { return this.__y } eq(n) { return n instanceof tt ? this.p.equals(new E(n.x, n.y)) : n instanceof Uint8Array ? this.x.toString() === n.toString() : "number" == typeof n ? BigInt(n) === this.x : n === this.x } add(n) { return n instanceof tt ? tt.from(this.p.add(n.p)) : tt.from(this.p.add(tt.fromNum(n).p)) } sub(n) { return n instanceof tt ? tt.from(this.p.subtract(n.p)) : tt.from(this.p.subtract(tt.fromNum(n).p)) } mul(n) { return n instanceof tt ? tt.from(this.p.multiply(n.x)) : tt.from(this.p.multM iply(et(n))) } negate() { return tt.from(this.__p.negate()) } } function et(n) { if (n instanceof Uint8Array) return Wn.raw(n).big; if ("string" == typeof n) return Wn.hex(n).big; if ("number" == typeof n) return BigInt(n); if ("bigint" == typeof n) return n; throw TypeError("Invalid input type:" + typeof n) } async function rt(n, t, e = "schnorr") { const r = Wn.normalize(n), i = Wn.normalize(t); return "schnorr" === e ? gn.sign(r, i) : sn(r, i) } async function it(n, t, e, r = "schnorr") { const i = Wn.normalize(M n), s = Wn.normalize(t), o = Wn.normalize(e); return "schnorr" === r ? gn.verify(o, i, (a = s).length > 32 ? a.slice(1) : a) : an(o, i, s); var a } class st { static generate() { return new st(Wn.random(32)) } constructor(n) { this._buffer = Wn.normalize(n, 32) } get field() { return new nt(this._buffer) } get point() { return this.field.point } get buff() { return new Wn(this._buffer) } get raw() { return new Uint8Array(this._buffer) } get hex() { return this.buff.hex } get pub() { return new ot(this.point.rawX) }M async sign(n, t) { return rt(Wn.normalize(n), this.raw, t) } async verify(n, t, e) { return it(n, this.pub.raw, t, e) } } class ot { static generate() { return new st(Wn.random(32)).pub } constructor(n) { this._buffer = Wn.normalize(n) } get raw() { return new Uint8Array(this._buffer) } get rawX() { return this.raw.length > 32 ? this.raw.slice(1, 33) : this.raw } get buff() { return new Wn(this.raw) } get hex() { return this.buff.hex } async verify(n, t, e) { return it(n, this.raw, t, e) } } function at(n) { let tM = 0n; for (let e = n.length - 1; e >= 0; e--)t = 256n * t + BigInt(n[e]); return BigInt(t) } function ct(n, t = 0) { const e = []; for (; n > 0;) { const t = 0xffn & n; e.push(t), n = (n - t) / 256n } let r = Uint8Array.from(e.map((n => Number(n)))); if (0 !== t) { const n = new Uint8Array(t); n.set(r), r = n } return r } const ut = [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n, 10n, 11n, 12n, 13n, 14n, 15n, 7n, 4n, 13n, 1n, 10n, 6n, 15n, 3n, 12n, 0n, 9n, 5n, 2n, 14n, 11n, 8n, 3n, 10n, 14n, 4n, 9n, 15n, 8n, 1n, 2n, 7n, M 0n, 6n, 13n, 11n, 5n, 12n, 1n, 9n, 11n, 10n, 0n, 8n, 12n, 4n, 13n, 3n, 7n, 15n, 14n, 5n, 6n, 2n, 4n, 0n, 5n, 9n, 7n, 12n, 2n, 10n, 14n, 1n, 3n, 8n, 11n, 6n, 15n, 13n], ft = [5n, 14n, 7n, 0n, 9n, 2n, 11n, 4n, 13n, 6n, 15n, 8n, 1n, 10n, 3n, 12n, 6n, 11n, 3n, 7n, 0n, 13n, 5n, 10n, 14n, 15n, 8n, 12n, 4n, 9n, 1n, 2n, 15n, 5n, 1n, 3n, 7n, 14n, 6n, 9n, 11n, 8n, 12n, 2n, 10n, 0n, 4n, 13n, 8n, 6n, 4n, 1n, 3n, 11n, 15n, 0n, 5n, 12n, 2n, 13n, 9n, 7n, 10n, 14n, 12n, 15n, 10n, 4n, 1n, 5n, 8n, 7n, 6n, 2n, 13n, 14n, 0n, 3n, 9n, 1M 1n], ht = [11n, 14n, 15n, 12n, 5n, 8n, 7n, 9n, 11n, 13n, 14n, 15n, 6n, 7n, 9n, 8n, 7n, 6n, 8n, 13n, 11n, 9n, 7n, 15n, 7n, 12n, 15n, 9n, 11n, 7n, 13n, 12n, 11n, 13n, 6n, 7n, 14n, 9n, 13n, 15n, 14n, 8n, 13n, 6n, 5n, 12n, 7n, 5n, 11n, 12n, 14n, 15n, 14n, 15n, 9n, 8n, 9n, 14n, 5n, 6n, 8n, 6n, 5n, 12n, 9n, 15n, 5n, 11n, 6n, 8n, 13n, 12n, 5n, 12n, 13n, 14n, 11n, 8n, 5n, 6n], lt = [8n, 9n, 9n, 11n, 13n, 15n, 15n, 5n, 7n, 7n, 8n, 11n, 14n, 14n, 12n, 6n, 9n, 13n, 15n, 7n, 12n, 8n, 9n, 11n, 7n, 7n, 12n, 7n, 6n, 15n, 13n, 11nM , 9n, 7n, 15n, 11n, 8n, 6n, 6n, 14n, 12n, 13n, 5n, 14n, 13n, 13n, 7n, 5n, 15n, 5n, 8n, 11n, 14n, 14n, 6n, 14n, 6n, 9n, 12n, 9n, 12n, 5n, 15n, 8n, 8n, 5n, 12n, 9n, 12n, 5n, 14n, 6n, 8n, 13n, 6n, 5n, 15n, 13n, 11n, 11n], yt = [0n, 0x5a827999n, 0x6ed9eba1n, 0x8f1bbcdcn, 0xa953fd4en], dt = [0x50a28be6n, 0x5c4dd124n, 0x6d703ef3n, 0x7a6d76e9n, 0n]; function gt(n, t, e, r) { switch (!0) { case 0n === r: return n ^ t ^ e; case 1n === r: return n & t | ~n & e; case 2n === r: return (n | ~t) ^ e; case 3n === r: return n & e M | t & ~e; case 4n === r: return n ^ (t | ~e); default: throw new TypeError("Unknown I value: " + String(r)) } } function wt(n, t) { return 0xffffffffn & (n << t | (0xffffffffn & n) >> 32n - t) } function mt(n, t, e, r, i, s) { const o = []; let a, c, u, f, h, l, y, d = n, g = t, w = e, m = r, p = i, b = n, x = t, A = e, E = r, v = i; for (let n = 0; n < 16; n++) { const t = at(s.slice(4 * n, 4 * (n + 1))); o.push(t) } for (let n = 0; n < 80; n++)a = BigInt(n) >> 4n, f = o[Number(ut[n])], h = yt[Number(a)], l = o[NuM mber(ft[n])], y = dt[Number(a)], d = wt(d + gt(g, w, m, a) + f + h, ht[n]) + p, c = p, p = m, m = wt(w, 10n), w = g, g = d, d = c, b = wt(b + gt(x, A, E, 4n - a) + l + y, lt[n]) + v, u = v, v = E, E = wt(A, 10n), A = x, x = b, b = u; return [t + w + E, e + m + v, r + p + b, i + d + x, n + g + A] } const pt = globalThis.crypto; async function bt(n, t = "SHA-256", e = 1, r = (n => n)) { let i, s = n instanceof ArrayBuffer ? n : Wn.normalize(n).buffer; for (i = 0; i < e; i++)s = await pt.subtle.digest(t, s), r(s); retM urn new Uint8Array(s) } async function xt(n) { return bt(n, "SHA-256") } function At(n) { return function (n) { let t = [0x67452301n, 0xefcdab89n, 0x98badcfen, 0x10325476n, 0xc3d2e1f0n]; for (let e = 0; e < n.length >> 6; e++)t = mt(...t, n.slice(64 * e, 64 * (e + 1))); const e = [128, ...new Array(119 - n.length & 63).fill(0)], r = Uint8Array.from([...n.slice(-64 & n.length), ...e, ...ct(BigInt(8 * n.length), 8)]); for (let n = 0; n < r.length >> 6; n++)t = mt(...t, r.slice(64 * n, 64 * (n + 1))); const i = []; foM r (let n = 0; n < t.length; n++) { const e = 0xffffffffn & t[n]; i.push(...ct(e, 4)) } return Uint8Array.from(i) }(n = Wn.normalize(n)) } const Et = { data: async function (n) { return xt(Wn.serialize(n)).then((n => new Uint8Array(n))) }, digest: bt, ripe160: At, sha256: xt, sha512: async function (n) { return bt(n, "SHA-512") }, hash160: async function (n) { return At(await xt(n)) }, hash256: async function (n) { return bt(n, "SHA-256", 2) }, hmac256: async function (n, t) { const e = await Ln.hmac(n, "SHA-256"); M return pt.subtle.sign("HMAC", e, Wn.normalize(t)).then((n => new Uint8Array(n))) }, hmac512: async function (n, t) { const e = await Ln.hmac(n, "SHA-512"); return pt.subtle.sign("HMAC", e, Wn.normalize(t)).then((n => new Uint8Array(n))) } }; return n.Cipher = Qn, n.Field = nt, n.Hash = Et, n.KeyPair = st, n.KeyUtil = Ln, n.Noble = bn, n.Point = tt, n.PubKey = ot, n.sign = rt, n.verify = it, n <script>!function (e) { if ("object" == typeof exports && "undefined" != typeof module) module.exporM ts = e(); else if ("function" == typeof define && define.amd) define([], e); else { ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).bech32 = e() } }(function () { return function () { return function e(r, t, n) { function o(i, c) { if (!t[i]) { if (!r[i]) { var u = "function" == typeof require && require; if (!c && u) return u(i, !0); if (f) return f(i, !0); var s = new Error("Cannot find module '" + i + "'"); throw s.code = "MODULE_NOT_FOUNM D", s } var l = t[i] = { exports: {} }; r[i][0].call(l.exports, function (e) { return o(r[i][1][e] || e) }, l, l.exports, e, r, t, n) } return t[i].exports } for (var f = "function" == typeof require && require, i = 0; i < n.length; i++)o(n[i]); return o } }()({ 1: [function (e, r, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.bech32m = t.bech32 = void 0; const n = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", o = {}; for (let e = 0; e < n.length; e++) { const r = n.charAt(e); o[r] = e } functioM n f(e) { const r = e >> 25; return (33554431 & e) << 5 ^ 996825010 & -(r >> 0 & 1) ^ 642813549 & -(r >> 1 & 1) ^ 513874426 & -(r >> 2 & 1) ^ 1027748829 & -(r >> 3 & 1) ^ 705979059 & -(r >> 4 & 1) } function i(e) { let r = 1; for (let t = 0; t < e.length; ++t) { const n = e.charCodeAt(t); if (n < 33 || n > 126) return "Invalid prefix (" + e + ")"; r = f(r) ^ n >> 5 } r = f(r); for (let t = 0; t < e.length; ++t) { const n = e.charCodeAt(t); r = f(r) ^ 31 & n } return r } function c(e, r, t, n) { let o = 0, f = 0; conM st i = (1 << t) - 1, c = []; for (let n = 0; n < e.length; ++n)for (o = o << r | e[n], f += r; f >= t;)f -= t, c.push(o >> f & i); if (n) f > 0 && c.push(o << t - f & i); else { if (f >= r) return "Excess padding"; if (o << t - f & i) return "Non-zero padding" } return c } function u(e) { return c(e, 8, 5, !0) } function s(e) { const r = c(e, 5, 8, !1); if (Array.isArray(r)) return r } function l(e) { const r = c(e, 5, 8, !1); if (Array.isArray(r)) return r; throw new Error(r) } function d(e) { let r; function t(e,M t) { if (t = t || 90, e.length < 8) return e + " too short"; if (e.length > t) return "Exceeds length limit"; const n = e.toLowerCase(), c = e.toUpperCase(); if (e !== n && e !== c) return "Mixed-case string " + e; const u = (e = n).lastIndexOf("1"); if (-1 === u) return "No separator character for " + e; if (0 === u) return "Missing prefix for " + e; const s = e.slice(0, u), l = e.slice(u + 1); if (l.length < 6) return "Data too short"; let d = i(s); if ("string" == typeof d) return d; const h = []; for (let e = M 0; e < l.length; ++e) { const r = l.charAt(e), t = o[r]; if (void 0 === t) return "Unknown character " + r; d = f(d) ^ t, e + 6 >= l.length || h.push(t) } return d !== r ? "Invalid checksum for " + e : { prefix: s, words: h } } return r = "bech32" === e ? 1 : 734539939, { decodeUnsafe: function (e, r) { const n = t(e, r); if ("object" == typeof n) return n }, decode: function (e, r) { const n = t(e, r); if ("object" == typeof n) return n; throw new Error(n) }, encode: function (e, t, o) { if (o = o || 90, e.length M + 7 + t.length > o) throw new TypeError("Exceeds length limit"); let c = i(e = e.toLowerCase()); if ("string" == typeof c) throw new Error(c); let u = e + "1"; for (let e = 0; e < t.length; ++e) { const r = t[e]; if (r >> 5 != 0) throw new Error("Non 5-bit word"); c = f(c) ^ r, u += n.charAt(r) } for (let e = 0; e < 6; ++e)c = f(c); c ^= r; for (let e = 0; e < 6; ++e) { const r = c >> 5 * (5 - e) & 31; u += n.charAt(r) } return u }, toWords: u, fromWordsUnsafe: s, fromWords: l } } t.bech32 = d("bech32"), t.bech32m M = d("bech32m") }, {}] }, {}, [1])(1) });</script> <script>var root, definition; root = "undefined" != typeof window ? window : this, definition = function () { for (var $ = [null, [[10, 7, 17, 13], [1, 1, 1, 1], []], [[16, 10, 28, 22], [1, 1, 1, 1], [4, 16]], [[26, 15, 22, 18], [1, 1, 2, 2], [4, 20]], [[18, 20, 16, 26], [2, 1, 4, 2], [4, 24]], [[24, 26, 22, 18], [2, 1, 4, 4], [4, 28]], [[16, 18, 28, 24], [4, 2, 4, 4], [4, 32]], [[18, 20, 26, 18], [4, 2, 5, 6], [4, 20, 36]], [[22, 24, 26, 22], [4, 2, 6, 6], [4, 2M 2, 40]], [[22, 30, 24, 20], [5, 2, 8, 8], [4, 24, 44]], [[26, 18, 28, 24], [5, 4, 8, 8], [4, 26, 48]], [[30, 20, 24, 28], [5, 4, 11, 8], [4, 28, 52]], [[22, 24, 28, 26], [8, 4, 11, 10], [4, 30, 56]], [[22, 26, 22, 24], [9, 4, 16, 12], [4, 32, 60]], [[24, 30, 24, 20], [9, 4, 16, 16], [4, 24, 44, 64]], [[24, 22, 24, 30], [10, 6, 18, 12], [4, 24, 46, 68]], [[28, 24, 30, 24], [10, 6, 16, 17], [4, 24, 48, 72]], [[28, 28, 28, 28], [11, 6, 19, 16], [4, 28, 52, 76]], [[26, 30, 28, 28], [13, 6, 21, 18], [4, 28, 54, 80]], [[M 26, 28, 26, 26], [14, 7, 25, 21], [4, 28, 56, 84]], [[26, 28, 28, 30], [16, 8, 25, 20], [4, 32, 60, 88]], [[26, 28, 30, 28], [17, 8, 25, 23], [4, 26, 48, 70, 92]], [[28, 28, 24, 30], [17, 9, 34, 23], [4, 24, 48, 72, 96]], [[28, 30, 30, 30], [18, 9, 30, 25], [4, 28, 52, 76, 100]], [[28, 30, 30, 30], [20, 10, 32, 27], [4, 26, 52, 78, 104]], [[28, 26, 30, 30], [21, 12, 35, 29], [4, 30, 56, 82, 108]], [[28, 28, 30, 28], [23, 12, 37, 34], [4, 28, 56, 84, 112]], [[28, 30, 30, 30], [25, 12, 40, 34], [4, 32, 60, 88, 116]],M [[28, 30, 30, 30], [26, 13, 42, 35], [4, 24, 48, 72, 96, 120]], [[28, 30, 30, 30], [28, 14, 45, 38], [4, 28, 52, 76, 100, 124]], [[28, 30, 30, 30], [29, 15, 48, 40], [4, 24, 50, 76, 102, 128]], [[28, 30, 30, 30], [31, 16, 51, 43], [4, 28, 54, 80, 106, 132]], [[28, 30, 30, 30], [33, 17, 54, 45], [4, 32, 58, 84, 110, 136]], [[28, 30, 30, 30], [35, 18, 57, 48], [4, 28, 56, 84, 112, 140]], [[28, 30, 30, 30], [37, 19, 60, 51], [4, 32, 60, 88, 116, 144]], [[28, 30, 30, 30], [38, 19, 63, 53], [4, 28, 52, 76, 100, 124, 14M 8]], [[28, 30, 30, 30], [40, 20, 66, 56], [4, 22, 48, 74, 100, 126, 152]], [[28, 30, 30, 30], [43, 21, 70, 59], [4, 26, 52, 78, 104, 130, 156]], [[28, 30, 30, 30], [45, 22, 74, 62], [4, 30, 56, 82, 108, 134, 160]], [[28, 30, 30, 30], [47, 24, 77, 65], [4, 24, 52, 80, 108, 136, 164]], [[28, 30, 30, 30], [49, 25, 81, 68], [4, 28, 56, 84, 112, 140, 168]]], r = /^\d*$/, e = /^[A-Za-z0-9 $%*+\-./:] * $ /, t = /^[A-Z0-9 $%*+\-./:] * $ /, _ = [], n = [-1], a = 0, o = 1; a < 255; ++a)_.push(o), n[o] = a, o = 2 * o ^ (o >= M 128 ? 285 : 0); for (var f = [[]], a = 0; a < 30; ++a) { for (var u = f[a], i = [], l = 0; l <= a; ++l) { var c = l < a ? _[u[l]] : 0, s = _[(a + (u[l - 1] || 0)) % 255]; i.push(n[c ^ s]) } f.push(i) } for (var h = {}, a = 0; a < 45; ++a)h["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(a)] = a; var v = [function ($, r) { return ($ + r) % 2 == 0 }, function ($, r) { return $ % 2 == 0 }, function ($, r) { return r % 3 == 0 }, function ($, r) { return ($ + r) % 3 == 0 }, function ($, r) { return (($ / 2 | 0) +M (r / 3 | 0)) % 2 == 0 }, function ($, r) { return $ * r % 2 + $ * r % 3 == 0 }, function ($, r) { return ($ * r % 2 + $ * r % 3) % 2 == 0 }, function ($, r) { return (($ + r) % 2 + $ * r % 3) % 2 == 0 }], x = function ($) { return $ > 6 }, g = function (r) { var e = $[r], t = 16 * r * r + 128 * r + 64; return x(r) && (t -= 36), e[2].length && (t -= 25 * e[2].length * e[2].length - 10 * e[2].length - 55), t }, d = function (r, e) { var t = -8 & g(r), _ = $[r]; return t - 8 * _[0][e] * _[1][e] }, p = function ($, r)M { switch (r) { case 1: return $ < 10 ? 10 : $ < 27 ? 12 : 14; case 2: return $ < 10 ? 9 : $ < 27 ? 11 : 13; case 4: return $ < 10 ? 8 : 16; case 8: return $ < 10 ? 8 : $ < 27 ? 10 : 12 } }, m = function ($, r, e) { var t = d($, e) - 4 - p($, r); switch (r) { case 1: return (t / 10 | 0) * 3 + (t % 10 < 4 ? 0 : t % 10 < 7 ? 1 : 2); case 2: return (t / 11 | 0) * 2 + (t % 11 < 6 ? 0 : 1); case 4: return t / 8 | 0; case 8: return t / 13 | 0 } }, w = function ($, t) { switch ($) { case 1: if (!t.match(r)) return null; rM eturn t; case 2: if (!t.match(e)) return null; return t.toUpperCase(); case 4: if ("string" != typeof t) return t; for (var _ = [], n = 0; n < t.length; ++n) { var a = t.charCodeAt(n); a < 128 ? _.push(a) : a < 2048 ? _.push(192 | a >> 6, 128 | 63 & a) : a < 65536 ? _.push(224 | a >> 12, 128 | a >> 6 & 63, 128 | 63 & a) : _.push(240 | a >> 18, 128 | a >> 12 & 63, 128 | a >> 6 & 63, 128 | 63 & a) } return _ } }, b = function ($, r, e, t) { var _ = [], n = 0, a = 8, o = e.length, f = function ($, r) { if (r >= a) { fM or (_.push(n | $ >> (r -= a)); r >= 8;)_.push($ >> (r -= 8) & 255); n = 0, a = 8 } r > 0 && (n |= ($ & (1 << r) - 1) << (a -= r)) }, u = p($, r); switch (f(r, 4), f(o, u), r) { case 1: for (var i = 2; i < o; i += 3)f(parseInt(e.substring(i - 2, i + 1), 10), 10); f(parseInt(e.substring(i - 2), 10), [0, 4, 7][o % 3]); break; case 2: for (var i = 1; i < o; i += 2)f(45 * h[e.charAt(i - 1)] + h[e.charAt(i)], 11); o % 2 == 1 && f(h[e.charAt(i - 1)], 6); break; case 4: for (var i = 0; i < o; ++i)f(e[i], 8) }for (f(0, 4), M a < 8 && _.push(n); _.length + 1 < t;)_.push(236, 17); return _.length < t && _.push(236), _ }, F = function ($, r) { for (var e = $.slice(0), t = $.length, a = r.length, o = 0; o < a; ++o)e.push(0); for (var o = 0; o < t;) { var f = n[e[o++]]; if (f >= 0) for (var u = 0; u < a; ++u)e[o + u] ^= _[(f + r[u]) % 255] } return e.slice(t) }, A = function ($, r, e) { for (var t = [], _ = $.length / r | 0, n = 0, a = r - $.length % r, o = 0; o < a; ++o)t.push(n), n += _; for (var o = a; o < r; ++o)t.push(n), n += _ + 1; tM .push(n); for (var f = [], o = 0; o < r; ++o)f.push(F($.slice(t[o], t[o + 1]), e)); for (var u = [], i = $.length / r | 0, o = 0; o < i; ++o)for (var l = 0; l < r; ++l)u.push($[t[l] + o]); for (var l = a; l < r; ++l)u.push($[t[l + 1] - 1]); for (var o = 0; o < e.length; ++o)for (var l = 0; l < r; ++l)u.push(f[l][o]); return u }, C = function ($, r, e, t) { for (var _ = $ << t, n = r - 1; n >= 0; --n)_ >> t + n & 1 && (_ ^= e << n); return $ << t | _ }, N = function (r) { for (var e, t = $[r], _ = 4 * (e = r) + 17, M n = [], a = [], o = 0; o < _; ++o)n.push([]), a.push([]); var f = function ($, r, e, t, _) { for (var o = 0; o < e; ++o)for (var f = 0; f < t; ++f)n[$ + o][r + f] = _[o] >> f & 1, a[$ + o][r + f] = 1 }; f(0, 0, 9, 9, [127, 65, 93, 93, 93, 65, 383, 0, 64]), f(_ - 8, 0, 8, 9, [256, 127, 65, 93, 93, 93, 65, 127]), f(0, _ - 8, 9, 8, [254, 130, 186, 186, 186, 130, 254, 0, 0]); for (var o = 9; o < _ - 8; ++o)n[6][o] = n[o][6] = 1 & ~o, a[6][o] = a[o][6] = 1; for (var u = t[2], i = u.length, o = 0; o < i; ++o)for (var l =M 0 == o || o == i - 1 ? 1 : 0, c = 0 == o ? i - 1 : i, s = l; s < c; ++s)f(u[o], u[s], 5, 5, [31, 17, 21, 17, 31]); if (x(r)) for (var h = C(r, 6, 7973, 12), v = 0, o = 0; o < 6; ++o)for (var s = 0; s < 3; ++s)n[o][_ - 11 + s] = n[_ - 11 + s][o] = h >> v++ & 1, a[o][_ - 11 + s] = a[_ - 11 + s][o] = 1; return { matrix: n, reserved: a } }, S = function ($, r, e) { for (var t = $.length, _ = 0, n = -1, a = t - 1; a >= 0; a -= 2) { 6 == a && --a; for (var o = n < 0 ? t - 1 : 0, f = 0; f < t; ++f) { for (var u = a; u > M a - 2; --u)!r[o][u] && ($[o][u] = e[_ >> 3] >> (7 & ~_) & 1, ++_); o += n } n = -n } return $ }, y = function ($, r, e) { for (var t = v[e], _ = $.length, n = 0; n < _; ++n)for (var a = 0; a < _; ++a)r[n][a] || ($[n][a] ^= t(n, a)); return $ }, E = function ($, r, e, t) { for (var _ = $.length, n = 21522 ^ C(e << 3 | t, 5, 1335, 10), a = 0; a < 15; ++a) { var o = [0, 1, 2, 3, 4, 5, 7, 8, _ - 7, _ - 6, _ - 5, _ - 4, _ - 3, _ - 2, _ - 1][a], f = [_ - 1, _ - 2, _ - 3, _ - 4, _ - 5, _ - 6, _ - 7, _ - 8, 7, 5, 4, 3, 2, M 1, 0][a]; $[o][8] = $[8][f] = n >> a & 1 } return $ }, k = function ($) { for (var r = function ($) { for (var r = 0, e = 0; e < $.length; ++e)$[e] >= 5 && (r += 3 + ($[e] - 5)); for (var e = 5; e < $.length; e += 2) { var t = $[e]; $[e - 1] == t && $[e - 2] == 3 * t && $[e - 3] == t && $[e - 4] == t && ($[e - 5] >= 4 * t || $[e + 1] >= 4 * t) && (r += 40) } return r }, e = $.length, t = 0, _ = 0, n = 0; n < e; ++n) { var a, o, f = $[n]; a = [0]; for (var u = 0; u < e;) { for (o = 0; u < e && f[u]; ++o)++u; for (a.M push(o), o = 0; u < e && !f[u]; ++o)++u; a.push(o) } t += r(a), a = [0]; for (var u = 0; u < e;) { for (o = 0; u < e && $[u][n]; ++o)++u; for (a.push(o), o = 0; u < e && !$[u][n]; ++o)++u; a.push(o) } t += r(a); var i = $[n + 1] || []; _ += f[0]; for (var u = 1; u < e; ++u) { var l = f[u]; _ += l, f[u - 1] == l && i[u] === l && i[u - 1] === l && (t += 3) } } return t + 10 * (Math.abs(_ / e / e - .5) / .05 | 0) }, L = function (r, e, t, _, n) { var a = $[e], o = b(e, t, r, d(e, _) >> 3); o = A(o, a[1][_], f[a[0][_]]M ); var u = N(e), i = u.matrix, l = u.reserved; if (S(i, l, o), n < 0) { y(i, l, 0), E(i, l, _, 0); var c = 0, s = k(i); for (y(i, l, 0), n = 1; n < 8; ++n) { y(i, l, n), E(i, l, _, n); var h = k(i); s > h && (s = h, c = n), y(i, l, n) } n = c } return y(i, l, n), E(i, l, _, n), i }, R = { generate: function ($, e) { var _ = (e = e || {}).version || -1, n = { L: 1, M: 0, Q: 3, H: 2 }[(e.ecclevel || "L").toUpperCase()], a = e.mode ? ({ numeric: 1, alphanumeric: 2, octet: 4 })[e.mode.toLowerCase()] : -1, o = "mask" inM e ? e.mask : -1; if (a < 0) a = "string" == typeof $ ? $.match(r) ? 1 : $.match(t) ? 2 : 4 : 4; else if (!(1 == a || 2 == a || 4 == a)) throw "invalid or unsupported mode"; if (null === ($ = w(a, $))) throw "invalid data format"; if (n < 0 || n > 3) throw "invalid ECC level"; if (_ < 0) { for (_ = 1; _ <= 40 && !($.length <= m(_, a, n)); ++_); if (_ > 40) throw "too large data" } else if (_ < 1 || _ > 40) throw "invalid version"; if (-1 != o && (o < 0 || o > 8)) throw "invalid mask"; return L($, _, a, n, o) }, genM erateHTML: function ($, r) { for (var e = (r = r || {}).fillcolor ? r.fillcolor : "#FFFFFF", t = r.textcolor ? r.textcolor : "#000000", _ = R.generate($, r), n = Math.max(r.modulesize || 5, .5), a = Math.max(null !== r.margin ? r.margin : 4, 0), o = document.createElement("div"), f = _.length, u = ['<table border="0" cellspacing="0" cellpadding="0" style="border:' + n * a + "px solid " + e + ";background:" + e + '">'], i = 0; i < f; ++i) { u.push("<tr>"); for (var l = 0; l < f; ++l)u.push('<td style="width:' + n + M "px;height:" + n + "px" + (_[i][l] ? ";background:" + t : "") + '"></td>'); u.push("</tr>") } o.className = "qrcode"; var c = document.createRange(); c.selectNodeContents(o); var s = c.createContextualFragment(u.join("") + "</table>"); return o.appendChild(s), o }, generateSVG: function ($, r) { var e = (r = r || {}).fillcolor ? r.fillcolor : "#FFFFFF", t = r.textcolor ? r.textcolor : "#000000", _ = R.generate($, r), n = _.length, a = Math.max(r.modulesize || 5, .5), o = Math.max(r.margin ? r.margin : 4, 0), f = a M * (n + 2 * o), u = document.createElementNS("http://www.w3.org/2000/svg", "svg"); u.setAttribute("viewBox", "0 0 " + f + " " + f), u.setAttribute("style", "shape-rendering:crispEdges"); var i = document.createDocumentFragment(), l = document.createElementNS("http://www.w3.org/2000/svg", "style"); l.appendChild(document.createTextNode(".bg{fill:" + e + "}.fg{fill:" + t + "}")), l.setAttribute("scoped", "scoped"), i.appendChild(l); var c = function ($, r, e, t, _) { var n = document.createElementNS("http://www.w3.orgM /2000/svg", "rect") || ""; return n.setAttributeNS(null, "class", $), n.setAttributeNS(null, "fill", r), n.setAttributeNS(null, "x", e), n.setAttributeNS(null, "y", t), n.setAttributeNS(null, "width", _), n.setAttributeNS(null, "height", _), n }; i.appendChild(c("bg", "none", 0, 0, f)); for (var s = o * a, h = 0; h < n; ++h) { for (var v = o * a, x = 0; x < n; ++x)_[h][x] && i.appendChild(c("fg", "none", v, s, a)), v += a; s += a } return u.appendChild(i), u }, generatePNG: function ($, r) { var e, t = (r = r || {}M ).fillcolor ? r.fillcolor : "#FFFFFF", _ = r.textcolor ? r.textcolor : "#000000", n = R.generate($, r), a = Math.max(r.modulesize || 5, .5), o = Math.max(null != r.margin ? r.margin : 4, 0), f = n.length, u = a * (f + 2 * o), i = document.createElement("canvas"); if (i.width = i.height = u, !(e = i.getContext("2d"))) throw "canvas support is needed for PNG output"; e.fillStyle = t, e.fillRect(0, 0, u, u), e.fillStyle = _; for (var l = 0; l < f; ++l)for (var c = 0; c < f; ++c)n[l][c] && e.fillRect(a * (o + c), a * (M o + l), a, a); return i.toDataURL() } }; return R }, root.QRCode = definition();</script> let $ = document.querySelector.bind(document); let $$ = document.querySelectorAll.bind(document); let url_params = new URLSearchParams(window.location.search); let url_keys = url_params.keys(); for (let key of url_keys) $_GET[key] = url_params.get(key); function encodeBase64(file) { return new Promise(function (resolve, reject) { let imgReader = new FileReader(); imgReader.onloadend = function () { resolve(imgReader.result.toString()); imgReader.readAsDataURL(file); function base64ToHex(str) { const raw = atob(str); let result = ''; for (let i = 0; i < raw.length; i++) { const hex = raw.charCodeAt(i).toString(16); result += (hex.length === 2 ? hex : '0' + hex); return result.toLowerCase(); return Uint8Array.from(hex.match(/.{1,2}/g).map((byte) => parseInt(byte, 16))); function bytesToHex(bytes) { return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); function textToHex(text) { var encoder = new TextEncoder().encode(text); return [...new Uint8Array(encoder)] .map(x => x.toString(16).padStart(2, "0")) <h1>LOOT for Taproot</h1> d="error-msg" style="display: none;margin-top:20px;margin-bottom:20px;color:red;"></div> <h2 class="safari_warning">Looting may not work in safari browser. If you are using that, consider switching.</h2> <form id="app-form"> <label for="taproot_address">LOOT receiving address <span class="type_of_address">(taproot)</span></label> <input id="taproot_address" class="address" placeholder="Enter a taproot address from an ordinals wallet"> <label for="loot_id">TOKEN ID</label> <input id="loot_id" class="address" placeholder="Enter a TOKEN ID from 8001 - 17800 to inscribe"> <p>Select a feerate | sats/vB: <span id="sats_per_byte">1</span></p> <div id="sliderange"> <input class="form-range" id="sats_range" type="range" min="1" max="100" value="4"> var slider = document.getElementById("sats_range"); var output = document.getElementById("sats_per_M output.innerHTML = slider.value; slider.oninput = function () { output.innerHTML = this.value; $$('.fee .num').forEach(function (item) { item.style.backgroundColor = "grey"; <div style="margin-top: 20px; margin-bottom: 20px; text-align: center;"> <button class="submit btn btn-primary">Loot!</button> <button style="display:none;" class="startover btn btn-primary">Reset</buttonM <div class="display"></div> <div style="display: none;" class="file"></div> // adjust for your needs let padding = 10000; // default padding as of ord native wallet let encodedAddressPrefix = 'bc'; // mainnet: 'bc', signet/testnet: 'tb' let mempoolNetwork = ''; // mainnet: '', 'signet/', 'testnet/' // no changes from here const privkey = bytesToHex(cryptoUtils.Noble.utils.randomPrivateKey()); let proceed = false; '.startover').addEventListener("click", async function () { location.reload(); $('.submit').addEventListener("click", async function () { if (!isValidAddress()) { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Invalid taproot address.'; $('#error-msg').style.display = 'none'; $('#error-msg').innerHTML = ''; let weapons = [ "Warhammer", "Quarterstaff", "Long Sword", "Short Sword", "Ghost Wand", "Grave Wand", "Bone Wand", "Chronicle", let chestArmor = [ "Divine Robe", "Silk Robe", "Linen Robe", "Demon Husk", "Studded Leather Armor", "Hard Leather Armor", "Leather Armor", "Holy Chestplate", "Ornate Chestplate", "Plate Mail", "Chain Mail", let headArmor = [ "Ancient Helm", "Ornate Helm", "Great Helm", "Full Helm", "Demon Crown", "Dragon's Crown", "Leather Cap", "Silk Hood", "Linen Hood", let waistArmor = [ "Ornate Belt", "Plated Belt", "Mesh Belt", "Heavy Belt", "Demonhide Belt", "Dragonskin Belt", "Studded Leather Belt", "Hard Leather Belt", "Leather Belt", "Brightsilk Sash", "Silk Sash", "Wool Sash", "Linen Sash", let footArmor = [ "Holy Greaves", "Ornate Greaves", "Chain Boots", "Heavy Boots", "Demonhide Boots", "Dragonskin Boots", "Studded Leather Boots", "Hard Leather Boots", "Leather Boots", "Divine Slippers", "Silk Slippers", "Wool Shoes", "Linen Shoes", let handArmor = [ "Holy Gauntlets", "Ornate Gauntlets", "Gauntlets", "Chain GlovM "Heavy Gloves", "Demon's Hands", "Dragonskin Gloves", "Studded Leather Gloves", "Hard Leather Gloves", "Leather Gloves", "Divine Gloves", "Silk Gloves", "Wool Gloves", "Linen Gloves", let necklaces = [ "Gold Ring", "Silver Ring", "Bronze Ring", "Platinum Ring"M "Titanium Ring" let suffixes = [ "of Giants", "of Titans", "of Perfection", "of Brilliance", "of Enlightenment", "of Protection", "of Vitriol", "of the Fox", "of Detection", "of Reflection", "of the Twins" let namePrefixes = [ "Agony", "Apocalypse", "ArmageddoM n", "Beast", "Behemoth", "Blight", "Blood", "Bramble", "Brimstone", "Brood", "Carrion", "Cataclysm", "Chimeric", "Corpse", "Corruption", "Damnation", "Death", "Demon", "Dire", "Dragon", "Dread", "Doom", "Dusk", "Eagle", "Empyrean", "Fate", "Foe", "Gale", "Ghoul", "Gloom", "Glyph", "Golem", "Grim", "Hate", "Havoc", "Honour", "Horror", "Hypnotic", "Kraken", "Loath", "Maelstrom", "Mind", "Miracle", "Morbid", "Oblivion", "Onslaught", "Pain", "Pandemonium", "Phoenix", "PlagueM ", "Rage", "Rapture", "Rune", "Skull", "Sol", "Soul", "Sorrow", "Spirit", "Storm", "Tempest", "Torment", "Vengeance", "Victory", "Viper", "Vortex", "Woe", "Wrath", "Light's", "Shimmering" let nameSuffixes = [ "Instrument", function pluck(item, keyPrefix, key) { let rand = parseInt(textToHex(keyPrefix), 16) + parseInt($('#loot_id').value, 16); let output = item[Math.floor(rand % item.length)]; let greatness = rand % 22; if(greatness > 14) output = output + ' ' + suffixes[rand % suffixes.length]; if(greatness >= 19) let pre = namePrefixes[rand % namePrefixes.length]; let suf = nameSuffixes[rand % nameSuffixes.length]; if(greatness == 19){ output = '"'+pre+' '+suf+'" ' + output; output = '"'+pre+' '+suf+'" ' + output + ' +1'; return output; let svg = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350">' + '<style>.base { fill: white; font-family: serif; font-size: 14px; }</style>' + '<rect width="100%" height="100%" fill="black" />' + '<text x="10" y="20" class="base">' + pluck(weapons, "WEAPON", privkey) + '</text>' + '<text x="10" y="40" class="base">' + pluck(chestArmor, "CHEST", privkey) + '</text>' + '<text x="10" y="60" class="base">' + pluck(headArmor, "HEAD", privkey) + '</text>' + '<text x="10" y="80" class="base">' + pluck(waistArmor, "WAIST", privkey) + '</text>' + '<text x="10" y="100" class="base">' + pluck(footArmor, "FOOT", pM rivkey) + '</text>' + '<text x="10" y="120" class="base">' + pluck(handArmor, "HAND", privkey) + '</text>' + '<text x="10" y="140" class="base">' + pluck(necklaces, "NECK", privkey) + '</text>' + '<text x="10" y="160" class="base">' + pluck(rings, "RING", privkey) + '</text>' + let blob = new Blob([svg], {type: 'image/svg+xml'}); let sha256 = await fileToSha256Hex(blob); let _mimetype = "image/svg+xml"; files.push({ name: '', hex: textToHM ex(svg), mimetype: _mimetype, sha256: sha256 }); console.log(files); if (files.length == 0) { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Nothing to inscribe. Please upload some files or use one of the additional options.'; if($('#loot_id').value == '' || isNaN($('#loot_id').value) || parseInt($('#loot_id').value) < 8001 || parseInt($('#loot_id').value) > 17800){ $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Please enter a TOKEN ID from 8001 - 17800 to inscribe'; let _padding = padding; if (!isNaN(_padding) && _padding <= Number.MAX_SAFE_INTEGER && _padding >= 1) { padding = _padding; $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Invalid padding. Please enter a sats amount for each inscription.'; $('.submit').style.display = "none"; tartover').style.display = "inline-block"; const KeyPair = cryptoUtils.KeyPair; const seckey = new KeyPair(privkey); const pubkey = seckey.pub.rawX; const ec = new TextEncoder(); let inscriptions = []; let total_fee = 0; let feerate = $('#sats_range').value; let base_size = 320; const hex = files[0].hex; const data = hexToBytes(hex); const mimetype = ec.encode(files[0].mimetype); const sha = files[0].sha256.replace('0x','');M const script = [ 'OP_CHECKSIG', ec.encode('ord'), const leaf = await BTON.Tap.getLeaf(BTON.Script.encode(script)); const [tapkey] = await BTON.Tap.getPubkey(pubkey, [leaf]); const cblock = await BTON.Tap.getPath(pubkey, leaf); let inscriptionAddress = BTON.Tap.encodeAddress(tapkey, encodedAddressPrefix); console.log('Inscription address: ', inscriptionAddress); console.log('Tapkey:', tapkey); let txsize = 600 + Math.floor(data.length / 4); console.log("TXSIZE", txsize); let fee = feerate * txsize; total_fee += fee; inscriptions.push( leaf: leaf, tapkey: tapkey, cblock: cblock, inscriptionAddress: inscriptionAddress, txsize: txsize, script: script, sha256 : sM let fundingAddress = BTON.Tap.encodeAddress(tapkey, encodedAddressPrefix); console.log('Funding address: ', fundingAddress); let toAddress = $('.address').value; console.log('Address that will receive the inscription:', toAddress); let decodedToAddress = "5120" + BTON.Tap.decodeAddress(toAddress).hex; console.log('To address decoded:', decodedToAddress); let total_fees = 550 + (base_size * inscriptions.length) + total_fee + (padding * M inscriptions.length); $('.display').style.display = "block"; $('#setup').style.display = "none"; let html = '<p>I. Copy the full URL below and open it in another browser window. If the results are empty, it hasn\'t been looted yet.</p>'; html += '<p><input style="width:100%" readonly="readonly" type="text" value="https://ordinalsbot.com/api/search?hash='+inscriptions[0].sha256+'"/></p>'; html += `<p>II. Send the exact amount of <strong>${total_fees} sats</strong> to the addresM s below.</p><p><input readonly="readonly" id="fundingAddress" type="text" value="${fundingAddress}" style="width: 100%;" /></p>`; html += '<p>III. Copy and paste the resulting transaction id from your wallet below and proceed.</p>'; html += '<p><input id="txid" value="" style="width: 70%;"> <button onclick="proceedRawTx();" style="width: 20%">Proceed</button>'; $('.display').innerHTML = html; await waitToProceed(); let txid2 = $('#txid').value.trim(); async function iM nscribe(inscription, vout) { document.getElementById('modal-reset').style.display = 'block'; const redeemtx = { version: 2, txid: txid2, vout: vout, prevout: { value: total_fees, scriptPubKey: '5120' + inscription.tapkey }, witness: [] output: [{ value: total_fees - inscription.fee, scriptPubKey: decodedToAddress locktime: 0 console.log(redeemtx); const sig = await BTON.Sig.taproot.sign(seckey.raw, redeemtx, 0, { extention: inscription.leaf }); redeemtx.input[0].witness = [sig, inscription.script, inscription.cblock]; console.dir(redeemtx, { depth: null }); let rawtx2 = BTON.Tx.encode(redeemtx); $('.display').innerHTML = '<p>IV. Copy & paste the entire Raw transaction below and broadcast it using "https://mempool.space/tx/push".</p>'; $('.display').innerHTMM L += '<p>After broadcasting, you will get a link to the transaction on Mempool. Once the transaction went through, you looted successfully.</p>'; $('.display').innerHTML += '<p><textarea style="width: 100%; height: 500px;">' + rawtx2 + '</textarea></p>'; for (let i = 0; i < inscriptions.length; i++) { inscribe(inscriptions[i], i); function proceedRawTx() { if ($('#txid').value.trim() == '') { $('#error-msg').style.display = 'block'; $('#error-msg').innerHTML = 'Please enter a transaction id'; $('#error-msg').style.display = 'none'; $('#error-msg').innerHTML = ''; proceed = true; function arrayBufferToBuffer(ab) { var buffer = new buf.Buffer(ab.byteLength) var view = new Uint8Array(ab) for (var i = 0; i < buffer.length; ++i) { buffer[i] = view[i] function hexString(buffer) { const byteArray = new Uint8Array(buffer) const hexCodes = [...byteArray].map(value => { return value.toString(16).padStart(2, '0') return '0x' + hexCodes.join('') async function fileToArrayBuffer(file) { return new Promise(function (resolve, reject) { const reader = new FileReader() const readFile = function (event) { const buffer = reader.result resolve(buffer) reader.addEventListener('load',M reader.readAsArrayBuffer(file) async function bufferToSha256(buffer) { return window.crypto.subtle.digest('SHA-256', buffer) async function fileToSha256Hex(file) { const buffer = await fileToArrayBuffer(file) const hash = await bufferToSha256(arrayBufferToBuffer(buffer)) return hexString(hash) async function waitToProceed() { while (!proceed) { await sleep(10); function sleep(msM return new Promise(resolve => setTimeout(resolve, ms)); function isValidTaprootAddress(address) { BTON.Tap.decodeAddress(address).hex; return true; function waitSomeSeconds(number) { let num = number.toString() + "000"; num = Number(num); return new Promise(function (resolve, reject) { setTimeout(function () { resolve(""); async function postData(url, json, content_type = "", apikey = "") { let rtext = ""; function inner_post(url, json, content_type = "", apikey = "") { let xhttp = new XMLHttpRequest(); xhttp.open("POST", url, true); if (content_type) { xhttp.setRequestHeader(`Content-Type`, content_type); if (apikey) { xhttp.setRequestHeader(`X-Api-Key`, apikey); xhttp.send(json); return xhttp; t data = inner_post(url, json, content_type, apikey); data.onerror = function (e) { rtext = "error"; async function isResponseReady() { return new Promise(function (resolve, reject) { if (rtext == "error") { resolve(rtext); if (!data.responseText || data.readyState != 4) { setTimeout(async function () { let msg = await isResponseReady(); resolve(msg); resolve(data.responseText); let returnable = await isResponseReady(); return returnable; function dotLoop(string) { if (!$('.dots')) { setTimeout(function () { dotLoop(string); if (string.length < 3) { string = string + "."; string = "."; $('.dots').innerText = string; setTimeout(function () { dotLoop(string); function timer(num) { $('.timer').style.display = "none"; num = num - 1; $('.timer').innerText = num; setTimeout(function () { function satsToBitcoin(sats) { if (sats >= 100000000) sats = sats * 10; let string = String(sats).padStart(8, "0").slice(0, -9) + "." + String(sats).padStart(8, "0").slice(-9);M if (string.substring(0, 1) == ".") string = "0" + string; return string; function modalVanish() { $(".black-bg").style.display = "none"; $(".modal").style.display = "none"; $$('.fee').forEach(function (item) { item.onclick = function () { $$('.fee .num').forEach(function (item2) { item2.style.backgroundColor = "grey"; this.getElementsByClassName("num")[0].style.backgroundColor = "green"; $('#sats_per_bM yte').innerText = Number(this.getElementsByClassName("num")[0].innerText); $('#sats_range').value = Number(this.getElementsByClassName("num")[0].innerText); function isValidAddress() { if (!isValidTaprootAddress($('.address').value)) { return false; function checkAddress() { if (!isValidAddress()) { $('.address').style.backgroundColor = "#ff5252"; $('.address').style.border = "2px solid red"; $('.type_of_address').style.border = "1px solid white"; $('.address').style.backgroundColor = "initial"; $('.address').style.border = "1px solid white"; $('.type_of_address').style.borderStyle = "none"; $('.address').onchange = checkAddress; $('.address').onpaste = checkAddress; $('.address').onkeyup = checkAddress; async function init(num) { let isSafari = /^((?!chrome|android).)*safari/i.test(naviM if (isSafari) $('.safari_warning').style.display = "block"; num = num + 1; await waitSomeSeconds(10); <div class="black-bg" onclick="modalVanish();"></div> <div class="modal"> <span id="descendants-warning" style="display:none;color:red;margin-bottom: 20px;font-size: 13px;">For the remaining inscriptions, please wait for the parent transaction to confirm. Do NOT close this window.</span> iv class="modal-content text-truncate"></div> <button id="modal-reset" class="btn btn-primary" style="margin-top: 15px; display: none;" onclick="location.reload();">Reset <hr style="margin-top: 30px;" /> <div style="margin-top: 20px; text-align: center;"> LOOT for Taproot is an Ordinals experiment by https://rarity.garden. App inspired by https://inscribetheplanet.com/. text/html;charset=utf-8 <html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'> <title>Timechain Collection - Series 2 - Item 84</title> <style>:root{height:100%}body{background-color:#000;margin:0;height:100%}.image{position:absolute;display:flex;align-items:center;justify-content:space-around;width:100%;height:100%;opacity:0}.image img{max-width:100%;max-height:100%}.ascii{position:absolute;font-family:Courier;font-weight:700;overflow:hidden;width:100%;height:100%;opacity:0;display:flex;align-iM tems:center;justify-content:space-around}.overview{width:100%;height:100%;position:absolute;display:flex;align-items:center}.overview-text{font-size:min(max(3vw,6pt),16pt);background-color:#000;color:#fff;margin:auto;padding:1vw 5vw}.hidden{display:none}h1,h3{text-align:center}h1{margin:0}h3{margin-top:0}p{margin:2vh}.fadeIn{animation:fadeIn 2s ease-in 1 normal forwards}.fadeOut{animation:fadeOut 2s ease-out 1 normal forwards}@keyframes fadeOut{0%{opacity:1}50%{opacity:0;font-size:24pt}100%{opacity:0;font-size:36ptM }}@keyframes fadeIn{0%{opacity:0;font-size:36pt}50%{opacity:.5;font-size:24pt}100%{opacity:1}}</style> <script>const img="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 c/Z/133P766z//BaodhaueCAMA";(function a(){const params=new URLSearchParams(window.location.search),supportsDecompression=typeof DecompressionStream!=='undefined',resize=debounce(()=>handleResize());let dim=Math.min(window.innerWidth,window.innerHeight),loop=supportsDecompression&¶ms.get('loop')!==null,image,ascii,overview,mode,decompressed=false;window.onresize=resize;window.onload=function(){mode=getMode();decompressAscii();image=document.querySelector(".image");ascii=document.querySelector(".ascii");overview=M document.querySelector(".overview");(mode==='ascii'?ascii:image).classList.add('fadeIn');handleResize();if(loop){let interval=parseInt(params.get('loop'),10)||5;setInterval(()=>{mode=mode==='ascii'?'image':'ascii';transition()},interval*1000)}document.addEventListener("keypress",(event)=>{const keyName=event.key.toLowerCase();if(keyName==='a'&&mode!=='ascii'&&supportsDecompression){mode='ascii';transition()}else if(keyName==='i'&&mode!=='image'){mode='image';transition()}else if(keyName==='m'){overview.classList.toM ggle('hidden')}},false)};function decompressAscii(){if(mode==='ascii'&&!decompressed&&supportsDecompression){decompress(new Uint8Array(base64ToArrayBuffer(img)),'gzip').then(s=>{decompressed=true;reconstructPreformatted(JSON.parse(s))})}}function debounce(a){let timer;return(...args)=>{clearTimeout(timer);timer=setTimeout(()=>{a.apply(this,args)},250)}}function getMode(){let modeParam=params.get("mode")??'';if(!/^(ascii|image)$/i.test(modeParam)||!supportsDecompression){if(dim>800&&supportsDecompression)modeParam='M ascii';else modeParam='image'}return modeParam}function handleResize(){dim=Math.min(window.innerWidth,window.innerHeight);const newMode=getMode(),changed=mode!==newMode;if(changed){mode=newMode;transition()}let fontSize=params.get("fontSize"),brightness=params.get("brightness");if(!fontSize){fontSize='0.62vmin'}ascii.style.setProperty('font-size',fontSize);if(brightness)ascii.style.setProperty('filter',`brightness(${brightness})`)}function transition(){decompressAscii();const to=mode==='ascii'?ascii:image;const froM m=mode==='ascii'?image:ascii;from.classList.remove("fadeIn");from.classList.add("fadeOut");to.classList.remove("fadeOut");to.classList.add("fadeIn")}function reconstructPreformatted(a){let str='';for(let y=0;y<a.colorMatrix.length;y++){let colorRow=a.colorMatrix[y];let charRow=a.charMatrix[y];for(let x=0;x<colorRow.length;x++){let cls='';str+=`<span class="${cls}"style="color:#${a.colorMap[colorRow[x]]}">${decodeChar(a.charMap[charRow[x]])}</span>`}str+='<br>'}document.querySelector('pre').innerHTML=str}function deM codeChar(a){return a===' '?' ':a}function base64ToArrayBuffer(a){const binary_string=window.atob(a);const len=binary_string.length;const bytes=new Uint8Array(len);for(let i=0;i<len;i++){bytes[i]=binary_string.charCodeAt(i)}return bytes.buffer}function decompress(b,c){const cs=new DecompressionStream(c);const writer=cs.writable.getWriter();writer.write(b);writer.close();return new Response(cs.readable).arrayBuffer().then(function(a){return new TextDecoder().decode(a)})}})();</script> image'><img src="data:image/webp;base64,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"/></div> <div class='ascii' style="font-size:4pt;"><pre></pre></div> <div class='overview hidden'> <div class='overview-text'> <h1 title="Twitter: @timechainord�M 13;Discord: https://discord.gg/7QKWjKCKc6">🕰 Timechain Collection 🕰</h1> <h3>₿itcoin Inscriptions</h3> <p>Series 2 - The Timekeepers</p> <p>Item: 84 of 99</p> <p>Sat: 4998407347955 (₿lock 999 - Jan 19, 2009)</p> <p>Type: Current Era</p> <p>Generated: 2023-03-29T01:03:52.930Z</p> text/plain;charset=utf-8 "name": "biqun.sats" text/plain;charset=utf-8 "name": "waxi.sats" -http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotoshoM p 23.0 (Windows)" xmpMM:InstanceID="xmp.iid:BCBF6CF2B24211ED86FCE73F9B16F947" xmpMM:DocumentID="xmp.did:BCBF6CF3B24211ED86FCE73F9B16F947"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:BCBF6CF0B24211ED86FCE73F9B16F947" stRef:documentID="xmp.did:BCBF6CF1B24211ED86FCE73F9B16F947"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> )A&&AB///BG?>>?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ))4&4?((?G?5?GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG text/plain;charset=utf-8 "name": "hitu.sats" text/plain;charset=utf-8 "name": "ailc.sats" text/plain;charset=utf-8 "name": "woce.sats" text/plain;charset=utf-8 "name": "bigo.sats" text/plain;charset=utf-8 "name": "zhibo.sats" text/plain;charset=utf-8 text/plain;charset=utf-8 *{"p":"sns","op":"reg","name":"karim.sats"}h! text/plain;charset=utf-8 "name": "hbg.sats" text/plain;charset=utf-8 "name": "xvg.sats" text/plain;charset=utf-8 "name": "aiyy.sats" text/plain;charset=utf-8 text/plain;charset=utf-8 "name": "eyx.sats" text/plain;charset=utf-8 text/plain;charset=utf-8 "name": "xmy.sats" text/plain;charset=utf-8 "name": "aiqc.sats" text/plain;charset=utf-8 1{"p":"sns","op":"reg","name":"BitcoinAzuki.sats"}h! text/plain;charset=utf-8 text/plain;charset=utf-8 "name": "yzl.sats" text/plain;charset=utf-8 "name": "shfc.sats" text/plain;charset=utf-8 "name": "bjyy.sats" text/plain;charset=utf-8 "name": "aibc.sats" text/plain;charset=utf-8 "name": "yxn.sats" text/plain;charset=utf-8 "name": "qika.sats" text/plain;charset=utf-8 text/plain;charset=utf-8 "name": "sowo.sats" text/plain;charset=utf-8 "name": "hzyy.sats" text/plain;charset=utf-8 "name": "zbg.sats" text/plain;charset=utf-8 "name": "xnr.sats" text/plain;charset=utf-8 "name": "yxa.sats" text/plain;charset=utf-8 text/plain;charset=utf-8 "name": "zke.sats" text/plain;charset=utf-8 "name": "biquan.sats" text/plain;charset=utf-8 "name": "shyy.sats" FjDOUT:F5B37286CCCA973E097C903D1EE61F1F799C35FE15325703A638D298FB0880C9 Bj@=:ETH.ETH:0x4f42C05A656C9F8FC1ca8fff2164caE9AD0C36E4:15566960::0 text/plain;charset=utf-8 *{"p":"sns","op":"reg","name":"$500..sats"}h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Bone Wand</text><text x="10" y="40" class="base">Ornate Chestplate</text><text x="10" y="60" class="base">Cap</text><text x="10" y="80" class="base">Dragonskin Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="120" class="base">Leather GlL oves</text><text x="10" y="140" class="base">Pendant of Enlightenment</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Club</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Ornate Belt</text><text x="10" y="100" class="base">Chain Boots</text><text x="10" y="120" class="base">Silk GloveLqs</text><text x="10" y="140" class="base">Amulet</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! text/plain;charset=utf-8 C{ "p": "sns", "op": "reg", "name": "livenationentertainment.sats" }h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Chronicle</text><text x="10" y="40" class="base">Silk Robe</text><text x="10" y="60" class="base">Demon Crown</text><text x="10" y="80" class="base">Mesh Belt</text><text x="10" y="100" class="base">Linen Shoes</text><text x="10" y="120" class="base">Gloves of DetectLrion</text><text x="10" y="140" class="base">Pendant</text><text x="10" y="160" class="base">Gold Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Katana</text><text x="10" y="40" class="base">Divine Robe</text><text x="10" y="60" class="base">"Light's Root" Helm of Rage</text><text x="10" y="80" class="base">Plated Belt</text><text x="10" y="100" class="base">Wool Shoes</text><text x="10" y="120" class="base">L Linen Gloves</text><text x="10" y="140" class="base">Amulet of Power</text><text x="10" y="160" class="base">Titanium Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Chronicle</text><text x="10" y="40" class="base">Studded Leather Armor</text><text x="10" y="60" class="base">"Sorrow Shout" Divine Hood of Brilliance +1</text><text x="10" y="80" class="base">Leather Belt</text><text x="10" y="100" class="base">Heavy Boots</text><teL xt x="10" y="120" class="base">Demon's Hands</text><text x="10" y="140" class="base">"Pandemonium Peak" Pendant of the Fox +1</text><text x="10" y="160" class="base">Silver Ring</text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">Tome</text><text x="10" y="40" class="base">Hard Leather Armor</text><text x="10" y="60" class="base">Silk Hood</text><text x="10" y="80" class="base">Brightsilk Sash</text><text x="10" y="100" class="base">Demonhide Boots</text><text x="10" y="120" class="base">DragL onskin Gloves</text><text x="10" y="140" class="base">"Phoenix Form" Necklace of Detection +1</text><text x="10" y="160" class="base">Bronze Ring</text></svg>h! text/html;charset=utf-8 <html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'> <title>Timechain Collection - Series 2 - Item 85</title> <style>:root{height:100%}body{background-color:#000;margin:0;height:100%}.image{position:absolute;display:flex;align-items:center;justify-content:space-around;width:100%;height:100%;opacity:0}.image img{max-width:100%;max-height:100%}.ascii{position:absolute;font-family:Courier;font-weight:700;overflow:hidden;width:100%;height:100%;opacity:0;display:flex;align-iM tems:center;justify-content:space-around}.overview{width:100%;height:100%;position:absolute;display:flex;align-items:center}.overview-text{font-size:min(max(3vw,6pt),16pt);background-color:#000;color:#fff;margin:auto;padding:1vw 5vw}.hidden{display:none}h1,h3{text-align:center}h1{margin:0}h3{margin-top:0}p{margin:2vh}.fadeIn{animation:fadeIn 2s ease-in 1 normal forwards}.fadeOut{animation:fadeOut 2s ease-out 1 normal forwards}@keyframes fadeOut{0%{opacity:1}50%{opacity:0;font-size:24pt}100%{opacity:0;font-size:36ptM }}@keyframes fadeIn{0%{opacity:0;font-size:36pt}50%{opacity:.5;font-size:24pt}100%{opacity:1}}</style> <script>const img="H4sIAAAAAAAAE+S9y87kupIu9i5rLBiSeO+hPfLgwBPPGj1Yl73hBg68jUYPDnDgd7fixoggKWVm1V+r1m5XpupPppQSxfjiHqT+5y+//1+//sd/+/X/+eVf/ucvxy//8sv/8sv2y3n93a5XuP7Cp3j9/+/X33T9/f36m6+//7j+luvv/339rdff/7z+tuvvb9ffY78+/O/wAc74f8IHOOX/Bh/gnP8rfICT/h+//L/bL7//47//w/Zgx3/cjetTxQb87vp4vbhD8PHYuVfHDi/uGnyPjSJ7KncSPmIDegofsYHdhc/nLn2Gz9SCTsBnagVsye8i/Y7OfyTeR0dCR85+lkIt3lelhb9rfAU8y7nLOXEEoC9hDzseeUJfQoU2tAK3aB/0JeM 2xRtyXsAVtaEFfrj28r8g+bFU6S6VzQl9S5d8F6EvcYS+0pC94ZDhlH7YCtqANLehL3uE80Ep0dd4Hfck114StgufkkQhVaIy/a0w9orjQCMclHvI7bJ30Oz4yCIawhTTaBTeJe4b3FzPvo3MyjYgOseKR17G4j8eFfpd2Hmu8o3TQHe14R6njBVtB7h2BGmV0sZUYBbSP8MKjm6AvZS/X9aFVsQXXgFaTu0W874JIbB18JPYln0Qx6mfuNMIjI40g4TMTjZiaOWM/+f5yYUrjHeVK98etJuiBVtn5Cnh/peMF951MMbxCgb60vdaKrSgjiC2mEWGwyLjg9UqR+8MjCbuMrNK4hVevu2Aeef8QzsEW9KVWvnqFvpRaLkxCC/rSart2Qivh7/huK/MRX6EIynFfZVwjjWoT+qGw2fkKBfY16EvdpcV9udrQonG5Rgb3QV9+3bkvLWHrauM+6Mtv+69XT6FVsHW1cV/lFu2Dvvxa+cgL7nSDdImLv5gShfb27tBeHhM u6j2OP1HWC5bEnvhPem6Xz1CzyWzq4Ujeo+8fee0UyF3r1W+UbOFAG/77/VrkJvfq9/n7dLjahV3/sv9ffqAm9+qP+sXMTevW3/Y/rcGxmadJe6NXf6vUF7YVe/X3/W/2D9jZu/o1k/45nlguhNMbr0t4T+ywDi/IYboBuHwXyb/0GUSL/DjShZpYmHVxEelOzMgj5YNQQXVsFoSCRDOUyIoE01MkjSWdGyXzdD98giua/79ct0sHQq79XuGNsZrlf2ltk2KlZsSlEQfn8e78uCmgQbomaLIlIKh4oogHI1OdIFBSSRaEgkQylNBKFmplJRhSMhceZr1tZNPN1G90+3wKK6tz3pkMATBr7RGzImVFaAzKoGyiuocGnStwkECahII1GKqIvaG8VZqVmQ7YSTkGhDRxIXIZS+1eROUcWtNN1UW6DXCE+yqToZZxRcgMfUTdQdFc9M/EgS6UjU6+E9zONlSAWxTd2g0yWQ2QK7T1FFNLeIBeivZFVRqS9SSQXNTMhh0M ejFAYSNytzCncDe9V/y4KcVcyBkjyJjjnqKZikvUFoRHujnIr2Sq8IOSjOQdbxhVjPkaY5UKAXMVQOlOjARQQVFOnYxN+iTAchQ3huLBkYoi3wmQM1o/ACNblXPJKNe8WcgpIdbp5tRVK/bB4eJNtFep/7zjK2UlMkA47GybKdFc+Jsh1uP9PBkdmZf8vyivjoJNlem5xZ9DD/toq4pmYjzUgQPVG2I55x7yG6+KS90CswX3baG5hhyTpF2Q5Dw6cijZNJTp5H5oMDNalX/bedgtRsrI8S2dJi3FI3TtaDbBWTbL+gQhc6A8sNspJPRjub7Cjb4X7IZmdzO1TeW/gWqJMs26ucWdBOvQo78wINLMp2ICfdAsp2uH12AAJ3g24hUK/kjgL5AL2ZpZN0ZkT71Qk+czdfaG9jLqM+o2wHktFvSbZfI0ljFQXtdAtReJBOFYmClYkSk5yKmllUGzULDx31GWU7EoVO1VhA0ZlRtoP8zeTyoGy/9lGfUbbn65d0KpTtV5M PHCmX7r6JhzyQ+Cu/NhBx2rdga783K7EyjkUg7C/UzOwd8KrHIGTko2wEM7JgxBYm7z8yOEw8syvYiPsiZM48G3T7K9r+JNXJm8m/ZeTrJMr96TL1C2Y5N/C3Z5rU3T+IjvkGU7SCRiKAo20HGkpBB2Q6DQ3eEsv1XsSfP0ilIB1cBEu0lv5u9sbOK88LNQ0hGTZZXDMLKkoFPxYY6a7qzCtp5b5YLUZN8OxEyVaQoN8W+omYjySCD04QH6UIo238V6+sk2d69cJTtp7ibZ2NblEUfy3YRQY3lFZO70Vj165I/w6wRdu7Vzs2D7xcPDijbYWh4L/XqpG4ElO3wW24mPjM3STL0JmmcfnDlG+QLNeYy8thRtgPJaO9xMI3wjsLB8orDCQehnSV/OFhe8ZlRtqceJ0DZHgXAAWX7bxe5+bpki9bKp0Jb9CIKNc9dmngwynaAL+8lChY5OFBT9kaEd+JencSDcoNn5r18cGGRy3v7WNHexiNJzSChHQpvoGxHEFLzFMM WHpwqBoZJpL+tBQk4I5CPLSLJsZzwHku0SHQmB9KDcQmg8GtRE2f77BVhuks0go8F2e+ZbiOSfJiZKjHJmaia+LnUjknaOciro1R/ixAWU7WgS097GghG5LCTWznyDSSQDYYNlO6uJgLI9SAwkJEE73VFKQiPaSzyY+I4SaeferEJuaja+BToVynbAM103s8aRJo1VYdZA2Q6WKBE0kz/IFkXI5E2wMxWyaGcauiw2Q6Ym60EeHJTtVeycUHbmfepGIR9HAFxOJig3A8scbjLaeSRL4jPzXpTtu9xRIc9LeJDt9sYBwUI8+CvzPsr26wZJeQWU7WAfE4AreV6/M7zZbu97I48znbmSLcqOdkDZjsqL9hbWodRnstt3uaPahGS4l0MxQjKKxUh8IzTROHxwYKbjg6OIPmomphEfLLKd+tzE8+JmZe7mJsYZKrvhEWX71azohkeU7X8Xnz2ybI/Uq4iyPYmWjCTba9/bpSidmbQzIyeibG9i88e9MvUpHLo3HjqKeaM JsPyUUHVG2Q4//oCbJdpZIUex2Qns8xGb4jQ7mXvGFyG7fE4n6eHS008GVxSYFd1G2R4k4xlMiRWi5xfNgglKfT5IMzBqR7XZ24iLJ9h7+PZPIZ2pmHlgaupPHivzQeHIQlm/wFHlFZw7spfKwo2wH+v1Ge0Uy8MFkX1UeuiCWDDcJ7ewuxUDBWBmrQJEitq8iyvYgCYmIsv0PcUtjlPgVitzIsv1XMtWixGSIB2OUXnEzMnK4yRFiJkrMLFSpGxSTqRwriLHKqajJPg430y5EwVNxTIbd8JiIB9nTjIkjomSox8QRSO5VEn+Qm0RBAXAiycAxmUiyHfxfaiIFwQXAZibfWW4hS1SfMwXsTTB9c/e8aK9EP3gvaWeO2MRMepCFTMxFdBntFR+Hbp9iMvuvFMGIRfxB6lVhecW3UE65X2oGvl+6biEK9t8m1mV03ZL5jugWCssrvt8i8orP3Bgq1Mna41e4tx7MC9zE1JBEAiPH1/tvKSYjkqEmlhsEb4rJ9LRLlVM 5RNyjILkmuWCX7QM228ziTrGPZXimgEclul2BIbGIhE+O0KLdPeymqJohtLEW5G43kFUchYmMpyrfQWIpSM+3kpbLTmlC2A0MWap6k2qjPiWIyOwc00k7yimmUdvZxSF6lneIMbF6mvfAdndTkBBYnjXbSzr9T/Cqx3c7OVDrEx6GDD/FxuImRbfC7qUkUrISNhLK9QTSAmmIh85mJB5McTGhvJL0TynaIA6NOSSjbQcPSqdhul6GTmAz36gxCBWryWJFESiejneRVIru93+9ZRPFRk3olt3A2oRHu5ZiMXDccQiNqnnIh/G0Q37lSkyLbHJBMQay+RnvzLxyspqb0iqgfxJLhZuPfEnJItu/SyXjwaNDBkSjI8ecUWQ9y5jF2jUNNtq8I7Sl2tNNe6BWkDP5OTbLb+6kaDztdV2Q7gz8dMrB4MMr2IqIvJbJFmWETynYwiuhCKNsRsdTMgg1qFtGh1Kw0GnwLqfHgUJNlO8eRUhYLmUiGsh1zItSkLABEc7EZ5VM R4IbbbOeiUKCYjobBEsl3iOSmTlyqMg7L9b5dJTPfL8XaOBSWU7VHM2kR2e21M3yK2KN1vYauPh51jMiyQUyG0F/kt53EYZoXzOMyDLNsFKpXQLtxdJWNC1yXZLhI4Vcku/Y2anMdhIVOT3C81eawqn6rgmdm+SijbqxhUqTZmOmo2smRk6Jp4XnT73W6nkWzk0TfmFEmjym+Rgp27KZFa2ShKrbDy4lNVGUlqNsYG3m/ed2FYah4iGKlJsp2pn/fAigBPlfco8pmahPY/KBWVOd5eZS/F+nic816FRtSkTBwnjPJBuYnfSfFljsmws5xRtidRfPmQTBxdl2S75FMyynYYnEK/zSSCaKzyUZgo3KwMfiobOGis/uBeUS51/51gllG2Y30MNU9Gzh90MPHg72T1ZZTt4C3ShU6hIA0O51IZKvkUL5UG56zcjLSXeZCpgLK9SLQ2cy6Vg3s5nKIWqSm9osEJPRNHTcnP/0qnorFi8ZUD94rBgLId74h+S/JKoBJZMpM BUyZG0M4u+TLJ973uDsAaeiuPtzBo5iiVDFIyZpQqNJMVkQB9Rs/7C/gI1m3Aonir18g5qkmxnuZG73U6nolxqFQom8geFRokyvH/Ib7McTM0ijENN0jisuzPnUll657yz8qJOZuoVW/U5kxRlZyqjbAdZRzeYqVec88o5MVGoz5lKLFg+5x5v5zNj5UD9m5xZNA5RoVCOXkhWyEtlxZcLRyCZf1G2X6PBuCokRX/jXhWJX/Fvs0hg2lv4BglmEpORbjQeSaJ+3Vnx0anqIUDCg1G2F7FkMst2oVElKSqjQZUxveqOYzLsh+bKXqqcqrLkJ4JWylqyY5IbWci/saBoFCkSQdEow/srw7sF2UsHR+4kEZRiMmJAZorJiE2YOd4ukpBiMmJOZ86lsgIq+y5U2LHJdjsZGGXnuKgUPlG0lhVB2cnz4jsqu6D9V2pyVI3LnfYi16VmFUFBZ26MHKp/ojoZcdLLIfYVN8lC/o0UfTmkIqVRM4pwo4N7r2gvSwbZW+SOaCM 9TkPt8NGE6bFIuVQIphetkfiOWLFwnw85UOSUuWqhJ0VoO3haU7VWStuUkCrL+LWcRhqW9bPVJswnMsBlkrIiggWqK5GCqkxGlWQJJBhZfhUoYJYxWAveKa9IoJiMB9hLYo+c6tFBFaVKTqyxIqBaOtzPDligePXUyEg/2wjiKbLOWLJGyS3LdSL3i2EiJZDP0C5EUZQVUqKBRsv+FKxrZPSxU0ij538Lxdg5ZFJTtoCaIoKlbMvRbshnkQhRvl0qYkjKrJ/4tol2CTiWR5yXkTsSDHIQpLNvZaS1st7NvVahORkyXwvWNHA0oWbIANFacS2ULuWTSzmxvlMx5HB7nLFKUT9WYJbkGUbwJbkr1Dt2v5FKZRoXyzpwwKmK3M5BKRzs1JWNC15VqRx6rIlKUMFkohvwHs2TduUlnrhSt/Z1PxfH23xiilWN9sjcyfYmgNclv6eCMZ/6dr4uy/Woya1SyZH6Tg6mC7nepycReXXvpYJbtv/J128nUp5Hssp1Gg2X771M xO2kjjBDlV5gvx3iIXot+KP8gHNwYh14ZyzovLOneSV5wurCjb/1b5VHXnjIkcHIW+1JRqVW5yRQqRu5Ldfl03UJPqZFrlZmMgUZPs9l06eRzcDa5gPWU0qBn49hMdHGU0aG+S39LeLN2gvTxWcl2RoryXe8WdPCVaSzd4HjzOdCGU7YAN6gbb7XLdkyyZX6XsNkmT9mYGA+8l+6o3qzTp4CZ9xr1h5+tSNwJHimTvyfqIqMCynVMzNUQeDeok1UD2PocsNKJTSVXYQXuxV1V6Fcib+JWpz/H23iS0Nx66yGPF10XZ/vdOUKqB3DmFXWNixFI3YhbE0l6JM1CvokhR3svZcO5kIs9LupHIkqlkqlWW7b0ZpM/028j3y7+leHvduTpavAnqZOo5evotob03yZLh3GLtdTLc5Agk04hrIKvsJVxJr7JQkMuyxR/k32buBv9WKlJorLLgin/bs+G4t5Bk6E2mIJ+qnDIatFcyJnT7hSnI3aAayOuM/FuyZJKcWeJX1AM 222wvDrDTpJDY5lyq4qlL7QdetJ/Mv4apStFagwnZ75mGvPOuAEs21ZpGT1CQvVbpRBVf828b6F+2N2tjq45FE2Y6lAtTknBf3mWMymW+/kS3am0n6TAeLhcynEvuKD5ZoLY1zE98Z77dxDSRXLDSqk6mJ7Jy2nzIa1CTJwDfYuAaS9X7byaPvp6L6K77BttNYscxpbLcX2Us2AwOpHbv8lpqSDUfeb4f4OHSqg3DFNRiN6mT2IKeSDC83RePQdVG2HzI1qh1UU8QmRGO7Xfp8SqwPR7KdTEG+7tkpSE3ulTS5noHo21C2/ybM3igmI5KhSbyd+3yyR8/DfjahLzYD53EqT4kQW5TmS6BsP2R6TwuBpQp1I0S5QTqYe8U3GCiyXeRgsq9kJEPvFTW50ol7FalXQoUoFXTUjcixPh6NSNlwOXOU6h3ey9U7cqrMTT5V4Qtxk+KiMnRkt++CZ5Tth0yYa0lyE0QFibfzWCWp/eC9FIEMspdiyJGvyzWQhTyRlsSj57M 1Udd+bjWQsNzNXhUmT5JWMVaYIpNwg51L73sj3y03ulTQp+sG5xcaynbNLLXPGhMcqU69Y1jWaniRzARrF22WeUeP6drTMYVIizor8z//49//xy7/8678e23+t1/lDXj/7rr709W/bPzXVfwyF/8vj4J+K6l9Bq9D/Bvwsf/9/hYK/PNV/Hi/PeHkfHz971F68/pJU/9n0/QwJ/4QI+AtR/WdT8KtQcIeDnz2+5vUXoPrPptSPpP8KAT97vH821X82ZZRCP57+fynq/xSq/xzKvnpZ+/5H4OEvJPn/ZKr/KIqOn6xXFrZ4veD/dL30/7hl3nOHgJlLvwIF63P816T6j6G3HcngqEy0Bcpm/ETfK0Xhc+JXuaH9LAN+rC7402j/J1D9x46T0MRTKjIX34/nafoWOgLueP8OB/+ktP+hVP9xdLbyV6kMr9fj9rT/7Kh5Tfsfy/n/nFT/ceNhx1u5Wimw6sdTf9Y9F0SBBPh51P/nofqPo/dM/4g0uRudV/R+NbZ0hcM yy/0nK/0jq//Wp/uPpLGN8L83vfvWeNl6dLaBNmAeun6/yT8P1X0j1H0Nla6tFtsoTUtxfW6//qifvSOb53oLzBmYfz5/73H6ExfdXo/qPoLinT+xW9r1Ev+uJIuddqq/G2doQ97b9P4Vv9wVU/3F3aGm+4vDnfoxUHik+U35Ns/EqwPXlet1beT+W7l9A+e+k+p9B8cCRtCcev6e16obX/ti9VTZTPi6k/bPG/1o8/Cyq/3kUL4+W+prL/Ugr5e9e0f3CU0mvoVeMyO+vcSQ9+hHj9GdT/cdRfEX1NZ9/eibP+f410l1b9kwj5dNWX3rz6z79ZMp/E9X/TJqD5XxP87Wf9szPM83t93e0G2lIfcgoh545/seO1jfR/WOq/+h78FTLKEU/tdnHM3kKa8Rd/s4IWMuFmY5xay/5Xfoy9+6nUf4jqv+5FA+s0df39Nm5Rsqm4TXTdo0F34Kr5Ivu+YU/d0f1r5UDP4bqP5reM6USjuc91ZUOIxXpRR5WNa+Gr2NfvBM uybcWfzC/akybYKLnh5E/u3FPo5iep+jeJ/6MJP4a4RLXDWN6RnMhLr5lSM4kPeZ/4Dv4dzZu+ocPoJyu0zGcuN8KExFdbhvjexcbXhv2+Dhtfi4NXKLHKIA79CIYrs0FGfY/9OzDOCQ/zO5iDj1cgwb3N9G1GB8idJ1fzaXS+3oT4Gmx8JTLeQwVJhnKN8Gn6IIrEIqNMakGQ0VYS41hJjDuQLLFhEWKb8iENwLXKJcExT8UgK5rfY2A0Vn8APl6i48/BxhodZTriTpvcoeNYvZcACUaZBA+Nl+gwEqUMQk0RAl3HA16h4xOK/2D58QIdPxYP99h4Fx0rfDxJjgEkdzg538DGzbtNWs8CpMAhr/JM70cdv8JQ/XZ4/EhwzPc5wqOiankFDwuQ5l4vAHJ6OXEHjRkdA0COAR150HsWIRkOH9Ex56Hfpf5XuTGfo+P76f092HiFjpX4GPHxWnC8+b47yYSXxg7r7EQJPNjyCAM44g08Xg/bV4DjFh434Pj+6312j5M 9qlpW/MnkpD7T8CBxvgsbGRFqXFSNEMkFkND9mbaND8+fB5H2IfMXV3u3znf6FcEcdjryTHpOz8ikyZrv0HZvkPiLSO9MYGFbNwOvaVRcQeZra8jyoP1SWLEDyNdf6HoDQC+JIPlCq5scYBXvXKp2B8oCJ5/d7cLF2Sh3M1oydnvNu3+PgfF1o9WdD5b76aJQmgTzDtFGhkcVKMoLkPvoxA2YIoh7+sDfBcxLRi9Ny81XmbuyDdyMxs7t07VquvA+TL42RTDD5sSB590UjVVHxAB7WKtuqoWIoN2Gm9b9919KgkCRLdmEt9aTgEotgmQFEdVEy1i4eAa8QsRq116z3BWgYsPAjkfAJFuiFqjrg+K4HZO566DSjFxGpLl6aLhs7Gd05Srci6lpAkFdrACA26P3r7obfB8D3ve4A8PXk/j4ARAoXNdQc65OMt6QkXLmS6k7qb5Xdb8g8ipE7rbQ7O/M4t7l0w97aqyDYHQR+iAFhYPC1xLf38q7BMMMAEFDfGC//K5M 8BzdsYUPCFF6uCioSOUFngyOodJXvTCNaa298juwzXCIIvdzM62b8KUpb8I5A/I/oCpB+8TqN6MxKLamHs+aIpkhilVVRBIJUWkgDTaRonXya5Woy4jQXVrwX/THhfieCH9rsJ/6eRPSy/e8W33052IayV/3HaT+QV4201oSKaqo1iKE79G+8tonRq4kHeG37vinyPxa/he0/6ryT5PfE/ITrx5veS/hzIcw+RyuAYR5qolIWcNEGH8FTYcCR6s58pbmTaovz5NuNv5JavJP5piP91pH+Vw3yH7DKuhc/1fcQXByANxJ9dhZHl7HfUK9TlebPC4CDPX6h/MOnF3K8mWDS/RgvjnvpfSXdD/78c9RMHmXVqs9Ln/tOa7vSK5PK1Sdff1+Dr0I8QKAP1JX0pfiHJiYJH3nB+2IKj/SeUH9H5fZT/SrrbmPi3vYC7eu9uCDPcw8MR0BsU2Bjza9Oova/whF7Uy9xt/Nrz1ol9ArL7q9YzzCL+HcKPIPCD+t2k/3LCfzM vJI5vPbdNVDF72/yXhwZBrGt6vXZJ8y4l12GffLiIemvr6+HEt79V7fJ/4Qu6vIv31+jLiW7n0rcQPm9RDisklbpeOkaXDOzHQwnq4B/MFAOqcFRc6WguSY7MXhpcwPbE9S3e6g6Th4PNFnO9T8q99/r8K+X3/vo38uWfnz41WFKpmrFXIKiPd94nEsDPCD2VJC6Y1s68NCHjl3qfC5inZfpr17sG/NBHbkn+ck/HZS4f+ZwNABvKetPeE969sGDRiiZKaU5klgrxGOU5nTMzQBCYyzKYq58bk8JR+jXH5rFmC3B0UtPOrZpaOx6SfB4AohfXw3SeEvtMJ/EIArKXU6znpY9Y8MW1of+1AkETqqlJHQ/NsggsSMsviYz1HprH9vpIjzym3YDJIZUubOv9iAmjFwGuH/5XjFzc/jqe7+/nTn42BV9Hb1xgYxwO9aPlR22iOxLlJqFZ+SGTXGVSHvos5f+pUOZ0tIHaaSHIfffe9lovZdVCTQ4Ek+DJ3yuZ92hsoeGM 0RjDiYOe7n4kD55JO+P+GgWCTU7hPqhWIv37L5O4rJ2cERq+z0U2EkNteLwUpPBMzd8rOgNP1fBgCQMOiAO9UayIubvFMMTzC42zdGCf4sGKxskVdEfhcENB6sVykmexzuHkfAj2eTpSnFvhhxYCWCzoDLIlWaIe6dDveJZJUEqZsg7tzl5mR3p7dGwGc54j8bCZ8IhOfe349JFamdiKfsVe7HkAiUN3EyJPGnoTvi4mbwsWPb1Qxpvcc4C85XvWa3zxcFkMZZzQB/BoEO2KeFAjpAa9a9hch3gWDMVX0GgmeWkBD7LiydzOX8gXYOpVSIR9YR0jFR78pluePBFi5rSdg8895PmfDzWByK6qYF6e/R3/q843jdjeC41scsKEcMfD39X72e1cET9Xmy2EliYDfOofzSl45qeY6WicDRtiDIOpT0+0V9pyn2uV9+YQ2Jaig/vnSq9XzPanf60YqbhhKf6D/Lgrdf32EOvJP5/R760xMnWve7JEQov50ZX6z8uzGwYwM YlRaNlMIlwDwBbPKhFgdQFNmPvdcZaHtijR2S8or+n+Tei4EP631clrHvxOf1Xa6dUcvhs1Y0KATtTqWz6iBJPdviuzNXAw1SBw4UPbuSAtlT60LfHeUPad4CwBoGFwl2o6BkOlkG/HgTjSH8iBO4MgDUUcjcH4nBfVolaAqkrD8dlKeWpZKN3s32eJHAzXaQ5/p+Vg52/MFQBPvH9SlMoFGaN8bqMwBNfIXEnvb8HCmFx3vvXDIV1jdQrmVDFh1th4c5ho33FeGk9e2QJ3YXA3ZzECQx1s7XitjS0Sk/n27mTDGt342kxuFePZvHJkFlJ3MqGj42DtYS569cayJ/AQMbRhmLH+1r/rnheXVD5dLaBGpcrV+/upb8q1Ms6GRLzwS4oMeLAR6FGgzI9YOF1HGFGxvcg4bU40B75u3gtEO7FaSWXQde5HKGgr+xUxOrE2Yb5DvXsRn+jTiDwPgIVhz5L6mhuYYSYXPWZ/HYYPyH/SpZ/lVZ4vmN756Ol6wH9THyrO9M Gqb5MdOMu8u+SyB4p0MG8SUZqJvya8qHKQSnLu58pF6ZdGnTV2tSL8ewuDvuL6r+R7Occz1EfyenjOZs6a20fCM+nZQpxpb3tpR1rYt2yrOJC17NTPWLH5yPISHr4vQb5HAiEtb9n0SqLKa/pbWr+yBTy9b2n/IfVfY2vsyR2GPfVnp3qmfhH6R/EUR/E/9yV2TrMK2NPWrnzRbnh8tY4NCePyyPGvMSB9rArK6sTAzPqvGP6e+FOK5zuJ/wzFbyf+yjwmQSvxHNX+z33UAZ7Fyrgajif92o0XwMnaO09i/jUwVB3YGchyb0+U/1T7y//fQvkn9h7N+teU98i2lLfhdqW7Rv2E+md3Cl/1dvxer3Qn3Nc01wAD1Ymnlyrevt4xByz96zB2z2O+ovyP4/lXfXlN+dHEUcqPU3OlEl/Nh8r0p7niT/0dv1WD6znGb2lvDQwqPqC8wxOt33nNGBA/RepNZwt/zhi+4vlvo72vTn1F/bF9l1+/p73wvHWj8+L+4dWLAGM mh+zVI5WLDHO8bb/6O8eXycva46WyA+Db5XwXo/XmyiLhzy2bcRsPvlSyY8W8k/5u8/x7d36d/eqB/nX2ftb8DcXeMrhw8pdPnClV+uNWqDlMmsi4ftOH/bG5Bh1FvT0X0PQ6ELH44XwsFPbqIkyulx0/64B4Ha3Md/77AgT32HRyodBIHekxzJKf5vYY1NZ96o5YKM6gbFQtomb4N/jrmbyy2bW3hPkUDjWAopu8zBKRe0EZt7jTCODpxOPOKV+00psB9iQL3kT/uSfIkFBQa3yoQZsa3n6zgyo6j5tCbviRGq56d3uVTzxLJSzpI5vrbOovRmaa/hUFhVwZSW2O+8bjZQqNDZJZd+ftwP7ErjWht675JXfNqjL0siL1TXCAxk9/D4F4b3ILhDfKvM7735JeeyNxKz5kj8c26SxJ4HVlvhUP7Df7QRjhtgnjdyxUu5kva49PCnKiMIn1GzPg7D3GVfFapzVKXziS2UUXVZddrv9MF97bALQZe6oE1+8/XXdt8GiM CNve+W9m4Bxye6r906GCZea9oeGvsVx6CQfB6tqvXF5C5WpmQd/LWVxaVRbz8qNqIxrk4ln7Iy/44AOJ2NugLA++xvLJJHANxBZ76uqvg7AFh5X/rgHT3YtWII6oO9U6W8vqLM4B8pGLch5jFw2n0F0SvqiwPhdAHdqR8nERAja/j7GqPXwQGgQyBsdQkBa2G8BwDHSi8hsAKBtfnsaFm8p0EHrKS+DM6aSrNsvouk0KIMr81sfd09Zfme+vcAOLTWoBp6k9LIPAhWAWnYQ8lpzPON1JjKxcShjzDZgdZVvrMKvxcC65eHgOd7b3zNENB1eTz5LRfw6j3y9NJ76htBIJVDr0h/F8KZZdoEgbFQyFWTHJpjKpumnpIZMDvjqCxEhjV6owMBDWzhySjWtP6sWujOM7yHweuzrvR/3O5hkMWZrg7BpjNb2GRJr2S+fx1QL9s4OXiNgOfbtB23a5COUmC1WGQPalidX7p/mRysbOrJl7OJDKybl/n0t3JN03qhuzD9ldM uyUnuFgvAgDN5HwZ1F6AUBD5OHr9KH9GcZ9lnxbbl4NMGrEx3vvO5uxiou/6y35lGhAGAhIN6ere4yE1zlolQDLfNY02br4EWF2Fmz0rHm7AIfXRmNsdc8/AoB1mZ6hYC1TPCxn9yVgJd6Qki5d9t/L8JngQ4v25vmhMf7xB/7P5uvpoZrnF1S+YCyiXUnM1GkM36xQgpcFNNNDTgIbuYBpiOotnGsIxvjqJb5X5H/Tg1Y++QTATA6/3lJ/OCISiO0cs6PBc8fRhp4Z49WIngCwOs7GSs559Wo20h6yWEIIZOwvVYv+rlKkT/LyGnZ2ory2k6Mu3UKy9P/Thk42j8aAe+kA58MAH010lyW8HqZ3ItyfOnvPeFXpIeWnQb8rh5bddyTfqjitMHjeUqg1Rrj1CG1fIhL7KTDuUu+jR7B+Zr2lvL2DCPf4/+PBuBTFNgPl3L9TP2s8/p9rNtmh+RHo0a4o7vSVLscN/uMmG+lvH/MhdJexf3hBYCdIOQva2v+ZpSUbvM 6tVf3Y2SpJrd0kMMsCAO/YAO+kA2YIzABQb8T3wN6ozN1TnqVj1tNiPN8K5Wfjb+bx06mO16+VyLK0H0vFjMjvs9Htghdp6+sKW6dHimCt7rcPr5nD+3oDnhiyZNEpLodWLo1R4pn+o+iXv/fLRz7nASz970V/d/1JOaq2L9s67W8hMPp5oxG4XhHuNfifBEBesr9lfiSx4X/rc8BfmYGcFtdR33Is+PPE8WSQ3+pZCAVtq4MouHMJb+U/jOfbALBnlbZl/eTu0pGfDGElvwhHnya0EuCO+L6K6k5uhQW0XpM/O/Ivid+Fv69csV7OigesTTEq65nk9g5XRr3GhOYS1VEar4ivVz1uVo5+zTijBtCcD0HcxXwSk18l2Rj0sFhdqf15iT8bPx25J0xDcE985ckHoW9KBwbb389Mlmifl85+stoTxWca+BvwCD92qYzNAw7urIFZDBwGA8d09fWw2U9e5vt8n3wyMR9/8rWkHpl9Lf3JhHyGqWe3O/qPhcEutnOu3nM uvXZCkBgVwbFzbxvyVJS3p1zFJ5QZltRVg9B5smbQWlFswrOHggXXcQuFT798GfrUfnP49HRREwq2MYNOp4dZXmkDWARsdTzmvdsrfuv5mnqM1Mv/yfYzWgTjotjrJ1pqswb7ie38/1gxY5T5XIZdhrttqxpHFwjMiXouHMe4glm82naqbpgP9kOmthW1FyDFmpHDwoNDe2EKE+Ul0sgyoF8/WFFg/HOpBMKz0hE42zYaG7+qAT+K4qhq9BLa1tl4v2fUSdImr+9pDo5hvnjB1B4mVmFCsMu+JdO2B9l4QKZ6TDNzqtufXiImVdbqQ/FLqZdcQU6gsrcIFKFZPq5RfGk0iT6FJhmzWWBjhYI3l90AkujIN5M9rkTcipSpKTgPiERzOZL99/twrPaIiToY8D8A4DqZLXz8kGWUS3xoXr1pGNaAPhlsE/o6OkL64nZh41WNoVCPvig2/BGHd5JkE47DfmQOv/Yr5l5KwoNIFS/+8uXXQfBTcV9UbmV67ObSExw1A7sM uP1tGatAJHb5Kur5I6T4vT3w+Ilx6r2MA4mWwZINaA0QCPh/crW6MHn07lhfR4U+/cMk1stAzify/ST56slViF1q2v7yihKRkDq2vt3ItuluwaPyGD8HgEifqP78KES80PiZY0Ecyy8BCX+IfO1PRwEAlOxy05dhqHz8oQ9SLtbNM1RjxW2lbfBscDRA4rPlRMeeR7hKvXfQcZlcZ2zrvaZzLOpSdw1PyF35cOEx5ekeC2Imy9CJe8qtzHYs71zaORPxEgHbYSziOv+pAZ54kZrI4Gf91CH8Ine8yrwHgDk9WKIbfC5dukhxqioyKzGtPav+sIpU+VqF2hNrPVqHLDMh+/Fzl3RUHUUTg0E2arKiuk3G41h88SEwj3rG3ugbI2R4T0YrthhyDwIgWPNhBYO5Dylg1EVnw2d4goIKJWXjJ6a4Dc2hqfiw+BhAty2cc7iKxT6ns/3+tIOQLHBOe17KKOadAITDhaMPCd2WUejKQ8WGiI45QMWozNXq28kIkhq3n89KM IRdmBZAkUk/BNIiGdYu+x0w3WrOpNDNGfebIlTVWNpPLMVIyuUqDDx9tiDRfICJTMUZrgIRAxK5OmIaSsG4tbx9wM15thsjFQqKYoRJ/JELvYFSasckmiT2E6zOLFVFl129LB92XQ6kC735yWedJv9o/QGRF6BJG1cBsH1W0XhoT7H4apk5S7qJs9H8Lr5KV6uR6atbTYE8B4+3jRF7Ht0ErQaI29pgG3uty2C0yogNd7schwqXvSbola+jFhWTKq6cnJEF5KyksRMISSvp20aSPXQ0DgiDWd4Ax0rfFiEFOrbQdOdyb4WJ7hHDeS5pWlAiAgVO4QaZlphQzvzbKV+ho557xBT8L5K3jQtLGkhHzYuGy22Q9U9NBvfGqFW4dhgc+77JO9BTwCy1xepXMTk0HJcfZKsPmGAlXrrYsOqP+l1NLjoS8U8omJliSgq1CIqrEqNQSRWQXYX19NoBWLZtPLeO+MeEdIVW/n6pk4ZADBElAbhsHJabYpY1IStEhDcSy/hPHM E7J1z7OJmPH1vtmjZfayzVl9nQXpWMJNwOQ34a+9FlSRMYRIbzxMEXcLgHBK9ILJJBtV7dynT5MdOR6cfUF2uj30sI7YWwpiyL+7aUsABwhxMKbEpErinxPItENZyEkrHTXszKNRbuXsT+Wp+rwW/lFwmfiyVscZv6vQn9ywIJcUCCaKi+sMhLLMyKg6h2mDmJfpUru8rkKpif+H7Ic9OnoNMRa8lg8RDZFpGqVWt13pLfGx/6g7FeUy6tIKAKUV0MOhkYlg5fhMHxfTDQZ8qrEtCqBtYScrcy6Tibsbfmic38rqfvkYoIb2LAo4ARICprLCmylsqcBBZBVhDoqm8lL/sMAaGI78zNpKnDh4yreyn7WRNWzp/4WxszEUdY746EA/06knR+50mhqifEhBSDoBojIW0SyJY4EEPAzu2Rsn1vg5TN2rYqsmYIJKzCfAcANpGlNIzm3JIJf36x30nP5g4DdOJ2rw3sKy9OOy+xpkQvTKrERp9nd41PwhH0rQad1TmUoiM vNl0UWF0iXYDpNXfKqRfeILSVmct4kuq2OgZBeSnWrCF11bnwtp3K9hC9EUs6k5/lKb5NeyM98f+yDRSMVprPVYL/JnkUC3/FnpF/VMagcGBdIFrPTnt9SQmAAnZMAU2E7V5/S1zYJJSvv0zosibCsJ1R7Rf0gaw+KHRG77pNkr5JewgqWoSWAo3N0NEyhUkTcgrFEztIeGDB9RHkYnq7x9TTWzdOKrDloK8aKetlwnDV53qH7yfrBsqsd9LGIT/Trq2SsruaiD3yQ2SAi+VsnFjFVZ/pibj0wTdXuKp15MQRwMttKrlNFVtrE2CTC2gCmnET1qVZ8SlusBSkEE9Ewl3Fd339IevJ7KTWVzEjLZzFa1dBQWhhJbwdclhx8FRuwv5ml9apYX/y3OOybz016gPhNrCqbRRAPVF0aMe04ZOwZyloymimQsKxM1Cibam2V+Ocm0UstClEUZkd7694JEnRe90x3q4M+Y3p6qnpgTaR6XardRMzYULxcsQt6M9mDAe4Z/qM 46w2v6mcLj8dKxNaLsWRNiyWp3cQTEnj5kmRAVpqp7vNNejDuenamROSSh1G79s0JMRIYtGRaOF/ljeV08AqFz5t5pinSku06yfF/NC+FEEUUzwCIFhe5quSeW6sexSbRYuyH+yoo+nope0Xu5sOqsj9zMVNeWyGoVqOJwkU98aO6H7s3P77KUz87pEmtDAjJd0MfO5HnTOZeJhWneJNsfecBFNUQn4glQomx12pUaksr83jj6jPCl081rNc3D+4WVojnGrZ0RulZ6IvxswVmt/WwJjPMvRmvAfs4sYSUsQcEVMqT0kX0aSfXXsXRPJnogbni3yjOlUyRfpFLcrsOnuQfiLCkrFYLr4Gr8WDII1ZBdJMPKCvuU8HCHMmaatfA2lQ9iKtlpRPRbnUwqCBgF/Ux1S7FX1trKAvRnCKYvNNHd1pJVI7XWnK496UpeluLVAIPMwZMpMOIMi1i0xZtWQOoKhSe3Rc75STwCAyG0GAJiYGvoInZIWOK/G9OhGLMSP5mzKPM F9HZLIKgof2NiirqS4Zvk70gv54gPbiyE/CopVi0x6Mec1VCJhIpuoWQuRTnxbj+iCyXIWI+xFIx67gZb1BuT/sKlbYqtNfXpPLRRl9XvKK9Xep30VVS1mUTBDuKrnVOKnrqai6YzCfO1rPxH/3PL2RHpLaE8sL/1tPEXida3HGWyGzjsl1kNSV5vL9g5OjuoTv5HQksyVaoOiEsFHAFK/KHGwCjNrUlkHKrOVUDYpU9FKOkXBOFvnfaFfpKRFzA45nS0YWlE+OGNE9Kul/RPbe/rpd7OpJwO0Kg5cYUR6ImwpArs49h9ZXhAj1xHa92V3pJzXZzU6EOKK9nmgvWYOLVB9bMgGqkabz1JebMZvp31wdQhqF8swertuZHvRcSKhcpf2dMyTxH+S7Wtp//pldYfN1Ukeqhp+nBdtlGUAZuJzwcOx2aW6M5sC4m+LRGkdJKKmLVmJvUcbRXnMDp9GBjTAvCL9SPzwFvEpaW1VzFgzdc/1aouKXW8zC8923hMBPem9VfM 9MePlkJ1epw2QnmszwUptc7rNttjDUpg1EY9hFN3tVzyFVdzQ5RZ+l8Ez7sKlTJXFTjeUIKmxfbRxHzsGf36K9T8fCGew6stbo8wbFuUVzzxKjEtR62numfE19G6ZbSfrXGFCql+7P2fnIdH4/V9PGyyRmUUSdj2XgMGQaFxT7O2/VSonQaa+q2kZI/ZjMdPcLMEXXUx/H+VbK070mQ0E9ozXstV9aEaWRfbGhFIsj5aWPr2knlse30P1kokj8RYI5+lpZDXYOrli7cgatiFey25aacQIMXVBY7QA15tZ0t1TX1I9VQdazn82F3nqL7nHTxcjkqnmzcmiVExbZpr+isdI8w7vZGsvnzehRqmKjMf6U3/3KBrlTb7brRqprxSdZimVTM0sjQLqi/0h3G5WhgHHePOesMt/K4VZ+qjO/pvmK1883DTxye0V20/8eX75/PsSn32XWcM+8/vSqrnBbtat8Wd4+k/C8UFv5XGgiVTgW2WmivXCqRtVt2ZSUsdpyRu+Qi3M GuK+mebhxXUSk/uiqDrMGtRX7eTtDP71GfqDsuRBrN1ax1J1x+mv5pKCe6Xn3O8Uzpg2jP3pEt1n3X0KPL2iIjIZyQanQroyG6/kI8KgGSgkOCtDaVYz04m9bU0g1xWZXRx3iUB4ftlyf+qOTnkOY75Keo/blJjs2aVtI7EeB+DRwrooT4abOPOx6N+1ev4mZ8wTlKj50BHN6lO5VfSfmLpMVSR8JIdy7F59nRGlCXZKpS3ytfov2K+n6hOGFlyWLaK8+GjxewM+0jO3omaD/R/l3qFx7VgPFcYWc9o7C/9EnjEcHdGbH8ivWF+lKekN3LRi+tkK9CfZ0i+j7xjw7nuImdp4FVP9R0y0UiGxyEteQXK9guvUGDPxbOWn2ufpxCQJhDr70mvwqFaIgf+jeawVnL/XfJnzZ9Ik3eJL1te2jJHzZrw9tcTpr2zpO/qhPit7P6no85/DESXrOgvUMEWTg+VC5sOrKeeDxSKKy6PRtESPWGRgTiBHAb+dAMnbfoR+YeESM EjasVB3JThfQXFHR7eQcTo25dN1ga2iswKBF351osDif3YX3lERD/f5mbS74sJPO/ARmbWrUEhNoK6d7Zqx7Kk6HQa7GKAlA08lEhCFmGW1YxOZekZGiJttQcrYKh2vofFuNjbklUegTFaS+oQWmOV9tC1PVgEGKH/WsXIbI28nKl3O4/r5fsGLbLM/dgXcWdUXKj+1rFQV48QoM6Ar8WUtIeWL8qvNQqt2n7GxogPa54rk1lBpmcYkSGO5YiMVQDkqdpX8tH2d1akBve/dRttz1VwJYedmR5KBbHOp0ebrPHyPHfYTxN26yTP0kLzbvIaRyxs1gXMmwaMJNVUBkzUTQNAgidNPI5B5+QwkRwm/Mh6TNikwBMinjDBNHgxZVSD/PKrvK1lkA0tWImiv/VO7v1VfW1YW838lviRQKetkTPMCwLXw15GYtky+HMWUgmllTm28NpW6mhM2YJAf+2P9CAYo0xjJHYNAhXCOtyivNRe8ffiFU98AwQHqwONTduYghUPsxM oJw1XDrW15DwF4NetAyKzT+SdpNE/3XgLSJcHpbssa95q8HofMywmqCBpDUGrga2W/Gtyrl5xbU4BWzzwDQGWAN+XFqA235Lch5Z4SeAsANlJwTudfw2wEXfwmAKQVVWm+zeoVldr9WF1KUX/l49+rGgQPAB2waCKICgtV0HkAgF3SyQLJnz0ytOom+SD14qw7Lu2zk1miyFoB7MkTFi8tTHkGwJilUbE+XmMNgOiOsBHIJ/J7ANSJ+mUhAPSXtVsAnvqW/dWcXWehxpEy7LLZfFMye4X6OrMrdDYlyRwnbCj1RYIXQ38bWBTqi+yX61EAy9LelgfpPVrXx2Lz3mmwz0S0mQPVHp7WI/XHkb03Cu9pbz1MnfAcb38b3NRoQ/0yQNpK2Jn4Niwi5JX0gWX9aIgvCtizvhBVC8XGeKI/WkJWGjCKTHxlJwk6lE3mJCrpPbC85amJoE6kh1WH/D2sRIgfvSfiBwPKJ+J7OuTB9CPi3/1evM69JwllRugo9Oe+W8qngTM bK+DaroLRX+39eBUNZ2kZYbWRgPFoyE8LcPo4rRULiiWhfNWE5srilj6PJ44pTlqbnFoZRUlqPv9C+2jGV9rtsHxzbH7Iqbrr9abEIUcpbQaHjvg7MabWdp72W69fuelinQLhWaa93LdSPw9ltSDGYMVMv7nS0PzdbEZxuKH+nyEZejA+TwYSSVt6Em/PqcXe0t9f9mOudyF8ZDFQKsiC8P1zDa1ZbjdZQ3tR99mwPfwWF3p9bEV8GzMaS42ZnSNoMQxiGTUJKCgsaErUIbRhL89TR3ZUVZV6p4X2+JfS9ELfktq+n6p/P2f5UX17Mt9nUI4OqDfiQCVhzLFKI4TWX1ZOW2BImF33JxC9bM5S3VTKjfUR3njYrykfVv7LPVUmu2E2O06oUK1BGuk/s3tXCnbc/1+Dd28Yz9ecpvO/R3v4uek0vBV6qKXnxqWOh5HUtr5n4lvSqAOST+mWW+AoODjbshvjqmM3EV/LHTTMSIiRsrGGMo/nUz90KOPNcEq+/rM6wkUM cO2DwQf77aaOBbOa59VCJKfOJd0tt77BUCVpLrMmBm1Sa7896JtGSP7qUpQ33ggAUG3S+VBPeHAMx++8p0E9KnzXtwcxnBSPowDdnMT3FBdh+5UJKr1uEz3BLeR+o8/86yyPbMDvanhFfIaFRXi/W1xEcXlyruJYB+4ncfVxGuT2YcfaRVCA+eNKUVLOXVHfP+upV0ROdigGUBNxue/u+KLc7tDsaqlzXtJDUNDjtvGPneoNe0zh3j2/Kcb6V8tmS3lV0S1K9LcWDB7YfMk92zm6rrtNgrhM+d8Lq8gg3CiLll2c+S3oftVsQ6lwO7IvvqGnafEr0uiP4k64lhV+fUa6kWGgk3E/5dsssZjL2eNytRRZrpFB477SobqWDjP6cjsY1WadJVuWeOZnXC7zrrc0345IbHk155Prmr3JHeD++4f5a7Mj7ZsMLtJKkHjre6ZvzW93D8Jf2Fu1EAfEL4ZCS5JEDupJIua259LZm7rxCemd0m2u0se68FhO5JpFDZ1LBWklM lP4I7wdeB4C7CJI92QaWsVOhXRbmeAr/37V2TXq/herWXOiqChk2oNjieyF+PFEWs8/zqaIy3hJeoXhlHWuIqNyFhYeG9PF0vJWzFiQc0yyceN8VJL9zLR3Ybx13S39Dg2z+pypJXrr+gdXlJdGcp7FjPlZ1ZWLKwMlOeXLLsgzu8dq9veaoTaKoHSx0q+TY7K3hG2Jvps1olh2cze2O8uDrhZ0d1W/cxi5RXVdSyDob1/YNqsl0f+5CNuHyrhjx1V3VoG6e/Vpvqc0+1axDIir3/jLaW0pR7k1QCE8rhHiEfByqoLvW68urNZCe7517pDXhKv0OXl6cwp1o+3/B5fcveS9ssnzqjlNjuWq5fFo6f58TGnn11WKSVf/SYMIyjcroaF8NQ42mP4bW1le2fJe/YyNlbXewd6HDdvkM0WueW7mRftbyy9n8d0eC2eROU5+vHXE+VHmosp9y7Njy0aaStj+ynNJXitfVBra5QJq2891UcHOQx7iddHh3ym+8itMxJeU9M 2e491x9VIbe/8g4X0i44n+ox1gOf1T+T5Lv+eMzormMuaW6p4mPgj7muaSZpHvZgmvebI07f2M7ndUf4++XoKspFp4Ub+ttF9x9bp33qa/p/nYH68V7eiu9Mooc/09WpqPel1+MXtQ81H+7FbrWUx6qis2RrqPvDrT3Y7lZ1S3Z11RWgO5awm/5qf12K+PPYfW+rjkXmv+CkP/5zr2NbLHuWNregr/jiibj7N+jF4rOKrPfRktePVq7invdeVnNB+vP/osBlWPRXd+5Lxdsv6Np3LY7ssjLfX8SM2ve7t3ptR8xTWvK/eOybb5yHFMrcRfYWLt83xO90+oPfK3rbnyid4nXj+n/gS+w6ce+ojNOn7jNe3za6T685F3VwvLc9Lf2Tv30iD2+36X6lbSek7xdLd5ys+pLr+dZfnseU64eozN3enTO8rP8v3d3uv5V5I1blZvhqkXr67guW/2fkZ57sfsntttL+d+WWzp/Ul/7d9PqT7SW/rxNmreoPodymad7en8HtM XHc+v427iatL/l5Tlv1H9pG6X62XvhKTm29PhZJ41c4uku/Vrh/l0Ue9x9OCb/9m/bL7//47//4z/+26//+R///j9++Zd//WjB/b/uy47NKP++7+Wf5/Kz7/NLXh8+ZuGv8grfTONy8/oUC//UOPgnobqMcH6gw/g0pcUztW6n9g+fj/GYp6f22Wc0enTNGPnZ4/jW6y+MCRnH1SgPj1SzFFcEJP5bHFS+73W3coR9ApMXLn95OPzlIODJrq81RUbqSvvu+K999cV4V2CwQMh/TRj8RYi/JrlOj95vhv/PIfJncDjsJP86GBv5rwSCn0z8FdHvZfWPIDUuj3uEHw+D0d78C4DgpxF/Jrq15VYQOCK8v4DU01cEgCR7zUHD8cf3wc8sFDU6Hj8RCn86BGaOt4RP/f+B+B9RWai6+DohEbJQo+Dn613x8ynvJP8z5ZSEXVx06HyN7KA1+lnLjf7mf2VYPMPh3In6xP/6zSfyABm3k+vUbxkTHRB5O4/tRFicYTsjvsM /tvC5Ku67v63a2LexbOBAxFjRBPjR8B/N//8ZIl/GLb8SNWpyjdvkTcfOn4OUOKYgJegtWOkiMCPlAijApgydrRuojAC48hHMLAcGAOAkkTRocwMAI8JMGR12/Dgl/V/DYjF9WxF0HUfPwsdcPFr5fgRqHn58mcX4watZ4IXR0uPTPJwyEQdFHgxim9ymaBSUHKRqQJRVES9DZui51UKnX9MS7QAYvYQSghmIIPhxGg929mxdMHkRfiKA/GTg/EDIeLnR3Fh0DZNoWd31/hJPCdoXl7+t0BwgRQAe+QY7IhOu4SjNpINx89ruSoKewWuuSjN/NvE+vrLJXYl/qJv1poPkhcBnlCumWcxfzpL/jBB1630FGXRDrjHTGDcURI6ORQnBB8XIJjIiZ7EhI0P7KOKuBncznVXgy0KnAEjoYs6C4kuAiG03VJkPHWDc3wme4QXP361fc3X8rGP1zAIgHVl+ziHl+L5Azo2X860a872poxCCVo5ZHxVG8UP1j7Khvm899RIM ciwZI5zYEgjUlNahKBL9GiuvT09vIkkXhUsL0YoRE5VhTRsP4gUfSl+LnGME/IuRc5TVtdT8meGw5zCHl4x4LQOeV3YTsG0Gg0r6+ACkhpFAHhKbajHU8/mNGETAO9v2BVt9jgfeH20phOj73R8bv3zDgvBJIdVAFfdGQxLPVXgtIce/tUAhnjZ2KqUcos3o1NYTJ2LqcoIWHbLDe8YJkDBBImnM1fv181hYqnDqvr0ulgQF1dAky9KZlegW6t2SZUuZE8PYuedl2XrwTUF4DJA+kdvRV9s1kwDQPzWhqJyXFh6AIQYAid8Gh02QQo7bJCKJFM4jhKRw99SvJ/OhlHM6ZGZOEajxgjAuPsROOsv7M3rAeMvSHGFtpPdyylugqoToI42aZ0C/Fby+y+DlmjePrIMHLCKDqoGfZ7633RF02WFIGMcTfGgSX0qPD6uu6MokvHJUYRfX99kTF42B9Ato9iS+HnoSaunoE02W7XAReOK5tyo1/Xb4mw97FiXCpCM6anyqM 8luqxOXK+K82fhK7VJ970NsDYhaWAuN0zydd4VTyCZ8M0SC60ob+lYTKm6kwfSNQVNkvf1zQWm633BjP6338PxdaEeBV2jyrR+ou9RkvAnqm6G0uwBWvH2MdBWzs3wxWB1PdDru33Cb8aZs9JHFnjt2EVrXZ0vRZdBobI5HntZMpTFyAfgDUx2XWl2tK/F9m4ixRgX1bxPlm6Crnx6QTYc3n9Up8POfhqLPY88al1+Iwi2vOXg9aeJU+XoI1qfY+9eg3YCvATc1yDvm1BnxYX04WOluRgAGhaVYcGgzLxjYULQhwt3OW35ogvmQJKRIl6yyRqEY7bfoOySZx1EKTFaMiIrX8bbDv9f4Cr4Bkg2xhoJRU6xVJFW+H0R4InEo1TviLzz6holAQ+DvCz3ibCjd3dDY/l28A3D35vv2z9C+W91Ez6GXjy/w5UcTAUn7x+lXIdgxyUNO1GB1GuJW0GNZWM6SlqaqiVBLPETk5j7VpB1bcpIJARlBmAQ0BES7dvCkN9F4rM TFQFKSzz5fYwOzwEMHWHhnEXdiiN+LCHSC8C3Auf8cEL2B9y1IRDAGSmr9SCAOUbF3Ydih5O62ows/Zm9uDKbHqHiDmHgH5nIKuA+lgBg8wX24rM9RaI/BsrRZJ5M1cQdll28AuLoVxFnd+U0QLLtKRYvF612xtkGBiGiGqgbcC7lJedMxmi4iPOIoX3vr9cZspJV70QR0o0EoQNKCq1lTb6lNHpWy+8Kb519uDn4Aw++MqXU48e2dZmju8De8F2PXFIuX5CAjMJMfO/Dk7BRZlVyME0LaN6M4zKcKvy7/yq6ItO+yu8NYQErtVZggyEAsKnQvS1B/1a3GWLcasQQjOC3dnS0ahi4frYqmzzjcDwDs4zuMtSYbBuFx7kuEejR+m7J+G5LfAsexw4OXNSjsz7Bo33mrCX3gCHr6DDQGl3Tsbxf2b6wyqXgCKq/SVjO8wTZr+O6ZpQifa9nqBYvrfq6bOuR9gjnXAsClXe8L03lrF84rfmjwzbHvcNCxX0O4g7eDzgM dwDv5P7/7NscOzX1LfambUZqz5oT5e7wv0ZxUrssH/Dc6fsZMZpegQHiQEH/r/JD9fRwkHG2kUqQL8czeN5ki9FqKfytK3IKvyM7QPEBuXuB3AOQ3VHWZjWagq/pDZm74Ae0nRo3XAiklpUAqB38iFYXA85hcEMgVRRZDBmB1i4UDoHXs1WwNcHlhGfu3G0uHrh1BAAJWLAIq+wWNlYCnwxn8rfweCEjx5+f31F4I3ICrdFhcbuEWZtj0wns8s/+8YCMIml6qwKw82Q4Ubhnq3g9UPQ9xjekC2COMhpkZEOBttN5L5MM7S4LoLxN8wVRnZ70rkN4Btcv2hvY3q08vdG6FM1umdunotjm0WInN5B0DyHPL4Ac1FLBMIKGYTYvsybTu8CdXpZrv2hx3x3aLCG/R4306Db8E4QAMuf32GsHbfosG4bJl+EzKdB6wGsHDgvEts8xaaYhz0imAcsA/jBiTAOADAmpHeXcML5U1ymPFYvzU24FFuiSWgb45Us+Oxsokt7vM U87R17+H0x/hLnpMDbh9bGM+j7N9nD/MEhy2KkubhAG4OFJ+r0C7hiClP/QaQLzq1pURIce0SV4Hc4v5AReQuIdTAr8E0A33mDY67uRRHkyQtyB/iogI8AShHoRqgj0CsL93wD7kYCHf5CgKRZoFewl+APbYj57k6CewgHYcXzGdhdfEJ625ZIX9gf2ereWRUHEfnCHEa8C9jfRFZSy+Ul4F/A/SvKt/rnvPrwDtbvZEP3d7oTdFHrMjMv4MKRmesDcT35rIDvaL9ABjgDR1HM3QMF/INgd4BHqIfT2Cx2E9hngrJsaKtcGwQ6YL9siXUBQD1BO9F5BNYpM+wXNgt+NrJ+L4x5kuwX0lPpW2eAvYt6muAB9tnOuA9F4W4/Ly30u/edWz+IOUX+8Daxqtk9e2AIdThfMMDjom8O/N8m4V8eM2cbHgwZm16diyo423qAK0gcYHKqE/wJ+2TXsLy3RjuwRSMxD1dFk5034ADglL2qtF/Bn7cspo7Af9iQReIC+oduHeM YC8cGcR4lvvr+6iM2CIA9ktkFKLQd2UIAHLinOJj7i/shJirQC2/Ad+zUZ+A+Dfw//pcXq3meTcP4Ubj3Zl5O/0SPrGVxGATwVudzCn1y9RnZOaN9s5AzvpbC3Y5W9hHiw/bu1E30c4cCpSkfOWOY2X74zwi4RFPRciREIKany+4CUnrV0ord6jlw7G5ysCZKR1H07CdqiDdAIil76y+bYIKonK0aPNXxy89rAsgFw6GXUXLcDwrVzAd1YrZ0daulWUMZGOSD53LmA3hf+Q6Gg44kb88HC2LEyf6b0rOWBtOrwWkhEwcC5kodOKTwwxHvBxxtOCN3ch4rc+LEuyDdfPjDCg+Gzlide/mtqttAkPZR4s/zgGM/JIUaATYmqElgxIAOM20HAlw1Sj5h+PNDcJvSz+S/cYLkCTflAZr0IfminqDbTihOEG8QFsJsoCEhVlqJuQIH+NeQE3PawYgd+YxyVDSQKs6In0NgiGnyA60sK7ELTul7PEv/GTFIEuODPDI/TcJM IVkkvkPDIEnOmWI5b8EJgL+tt4Gl+lHLLpeGf9O24YGWKyhmxqhCac1QD2UexakmZYi1Y4KnLDAclDTKqTUqA3ugeNtsyuADBAtzoKWyPnGviwVWMZpeiZQbbOHMEHifr+qAEgnK6Uh60qExRrOXE/C2uuq/8JHV7wkAuzAFqAQZSEegzADQVty9kvBoXQ2aEmrY1ZcMQrBllH+ZCA2cvBLOjI/n2wD324ZNc7CIzz42rvmOEauyUvfFgTMuuHfmP9TmYWGFg/mxG5YwdNW5uEy4m6oR3kK8Q+n4N2dcVAcSH2lAuGQcVZbqwCdt3ge0RaVsNltaVkxP9iQ3c40d9o2rJBe/xuOkfSrQZWFYYTavQcIf0HzoZ8BboKF0sljPEDJ5AkEA8asF7zQj/gyYv8qX0e4XcoiQWTnI1BYNVINtphFqz9yL7rHTWx5IuJK+7Vw0fvvGKLrs/y1OmZLfJLa6lLlUML3JQtDsoOYOYL+UKPJJMpobEEBhKkx2AXCMvKHgMaTZM G2vHvukA2QEawxU4ZNDJvjnjMsd9Q2cILZwLeVTdrgibeV7sjELd2oMm5G42RadzsycdDu1SQGFKr8gcxBEX+CZ/AWwyKyDQUNYyTbck1bRFsHYqttQDxiNcZpuCAvzQgTV7coey3QF+bUwCXoWH+FCbXkksGWmpXH+n5tENtUkQz+tdUfRMWLFRppCNQZJSqXHC047UE6g9iCY0qyQZ4MqhFG9hBzSqA2bZFg2s2pZHK+zFqVv0/CPswSNh7rYrOZWAom6GXIeE0Jj27wZaNS2NuADX4jakVCU2iEBRQUyh/MI2Dqg36AGEIrjk/oDcxBk0+FVYJII8snanDdmFpWIlodoUxy+PiLS0EPkLH+/GCxv2SUlSPuuGTiEQlEfZJQPi3MW73l4mWsyZlTZiqLfTvX4uaAzinIERlRhLAnLUFppJqMGqL+ihQ8sQ7MxqlQ2QAXWScEttaIi8SMEROH40DnTls3dWBr7LWLqZY4joWdPzCBjRGugzihIximHvZ1WXodCCM 0bhaEDVIXYw8PkKmQzKkW4Ju82H6dlTjuapxf288QaGIkSjjj5GIrfLsvi7gwvZQEa/4E3BncaoGTZYRCo2Qjm2RB7ENhOh9Rb1hh1B3HGh9ojT9rjLkyVd8fvgwJhryxyRnSYIGDTRZZdqPzCHlAwl1Y5yQbZuMiqF+9xITv8VJ6DijZMxCppBiNbXtjnjR36EwvgSN5zwvjkkuA5WkD1mrlfD38fOGMSCf10X8iuiVkTu5E0SFVIbZzwEwrVBlviB3sSLp61gr8qB5h9knD2CZlRqhv6FJWhMuBtJyOvLAYbil0ekHeRuNFj6V4jyN9wg/yvcy1eKg4L78OH2Qbk93kxLhBiIuSaLjXeRbdyaS9YG3sFCp575pplusVTEhZRatj7lIpjnDnGhyNWus3FeS/sgnFJUHvQd/noRkni9XaIyRDkAdf/oxJnTBbDpIzLLb6UAaiGkzITJ9Q3geaAkuZRw1htJIEBsYhGFtjRuz531nN8vWPHcu4yscBxjLVIohFsBsM 8WmjoptPQsbthgTj5YuFuzZ2AMaxS9YRctuKDzwMQBJ4ih1fY2K6hZtNQObI5cB7ExyCO3HKd2ayf1qnzSEi5XV1yt5ImZJ/C7LzSS2h+dwXP8Pb/niZjyplJ6SAWTWGczpVElX+jKgkM8QKUmBs5pZjP1ksDK3/OcpszLHqRAC3sAMoE4UA8KBhxAGMqhm0+i9MTKSVoP9ANujTYKPfU3lGkXvBN1BQjmuYxsYDhBtqEudTZdLfFmdogidF5qCOsL3B2W3+AFww7WWWBuSO0TZnifJx50xngDYvrQHAt0VWcpMgxqPyCz3iB26PVknUT8gdZhoKLrYTbVOy8If8PsvZ2nlsBqIVrQRDXL4JrsZsrgCfeMq8KCjQNtWL8q4SDSbdP9k90JQ4Mz5MEBAL6A5MD1HWgCtMQBoZH/QnIAbjxyOTWohYozrS4RX6ifmGPGaQJq1Ruh3ySaqijnP8wS8KcFX60x6YCFp2aB3j/YyFG/8W4Ldw2g4rR7DSQyrSNwfiD/FfM AM98kZHgH/Heg+vZ4a7yQ4pAMBh0lFz4Lf+gZWDygtDjayAy0Uztz9KdRplMI+BGfZW5WHs9EUhmPjqbwn3C+oHawWgjZ4tknoFqmgECfbZDNU8OXlqp6QGgaJD1fFNBqsnExAj0WsseJyAyxEE+sO0BoUPgXb6MTPlHFwqJf0Gtv58lYtMHhas9NrYb38vAwM9c8zUk52hLszbO3jNyB+7g7ik23zzebN2qQ5O8fa3QPQ+6gw0GGbx+sB6eoLGAtfK1ORTijNicftDLCPIc+/wbkowco2vBWc8QhvP/cRmmdKBN8E9dCQ1oXPjQU6mOIk6YGOMAgYkIF1UEBmHyriMzjAAffBoGKlCZTTwUae95mprrxSNn3nSlbQAVBkiv4q/eL6QUtcZ5GLDeqc1t5Z4x9NnWWkp/u9K9w/2bKGDfr/gyebvW/7Gn9B5rWwdX/h/qLMDHsFP9Pifdyrzz0wYfYqqN/QYLtFryNfQt5GOfsH4AMSVxS17HMIMEbDJk0dwX/37kM eOyO+7A2AT/1DOHzFHIUogZRFOYH6g6FHVczHcUcTj7BcALixcvtNnGvlu9OH35aAN+AJMG7hfSHEBA1xuNxyDJSBwGs4MQNgHpgtHtG1wvBvlDxLtgZgRmPI0gR5nyeFZCOiGCYplkYxcAVqnVI0DnaYy3jKF/cDgR6bLS+N1UgzZYKtDytk6Fk2vWYLEoLV5gCm+iCHeNHzUuR9GQM0+Y+O/wwn2bc36RLFG6X0U+XbaiE8mNJuPuBX+nflONGSuygt2fzDMYX4TkS1o1X6QyAGj/CDQDyaDcAipj8bmZrAqGSiPi2FV+qoyryBPkFeQxHbGHYlQhgcAE4E+qPDDgN+Da7Cb1FomxinExfBjSKg1CqyeWHNRUHFgoLVQSKtlXtEyhXW01LjFEGwjhgF+Q2Yy0VJlENEdCowhCpJtlox9Buc6RK8nutFkeYJZyDWmg9y7oz+hZ3ixzZMiWdhTHzKK6dRgGg7j09UGewrd7Fdj6ol7jIdg34mSxCiji3f9O2aRR7M CUv9Bn2RAyhofwu8ZpFuYR/I7HtVYdJvytOQcNJsGiUNC+V6bmKrNm4tRLYaBBghmDVImi5pceZVgJeANNtkrs1Eh3Yf3trhlqUFOZWKihH4RWGa4/0NRCa3CCkyLCTVgom3Sai7Yad7sXbZSKLCRsNES716EmYI5uLffAyZ2dPSsXb/HM+xWiLzSPiOKLMDML8R570Hv6x7Pu2IdbrSk6iCQI84tho8MInpXDPegdF1GS8pqTYigA1RaIn5g1YhTIwT23uOYdbBf9Xvhj1k0LBy7qSYf7DgxB8C/QEeD6oz1xoSkMneFB7ctuyeT8lyhWd8+RkGKqFkgwAMAHYPjxljklCDFYTKunrnlMUAH1d5GaFa5HyZLmy6hThYd6Vnrh0nOEa+ail4zEXLSQrp2LxIlVbbTmjycuGhyIG10kGwJpqY38IfabnsG+fVsTfGYlVsHWjc8Sn5V4Vc89kAR7sOfcL5YRdc7uIb0aJBLgLzBUM7qn4rng7sCK3y/E7PAZQlRgbVM 1qe2dVhRusnlz4u53+AhyF9cogeEZW6GN6kJUDiIDMBuY5uOApcInHfnIGAxMVyjs7rDUD8eLdq62mCfdeiNPfotf4JNaPipTQB3YG/kBWImOuoKsPycBAdZYk8aB4HKMHmWZsAJMAOfceDCBGSs9pcHWEXN5jyImP70MjlRrOGfloUEbMPZNdZEy8D/TRgpuOc2Clbr8sJOs7htxkUFit1SNhykxEmJGbbI7b5Lpv/aSVRde5KOjHA/JssEEw+MLbEZF7gEMCZNMAchA0BZ8e83rwOA/wkUEegxwFcQpyF7yAzBtApjK64TjiphBIoQRAoFVoyF3ZDTLapRzVQglTVUklrkBE6V8heUkr6qvBwGabWpsLQ8LyWOc0Q3HTOVA5EK2G+ABmCtknauQGVS5vx2pIWOHjxA1KAULQoquD1kYrHFygCILWj7jcYqaRh1geaimMUkwlDsReyCRKXDbv6JMcfqulvKZCrM2qacysjPtHm2viOGOHTOz1/Tn1847ZWTXZcLM kNvQzBmFsGu3GkDkMMYSW3Bd/MkN2GLXXVFfAZfQVhQxwC3AGVGDBTDtIoF5RgGXZA6h6Va7qZ2FDHORHVzcWGOo02MKISZkpCJH1HFmDAABeXjED2sZHWCjA4ySx1kA9epRbKBTpJTdjCGxe63xGadKa1YC27HeTpSOghkzcVYiW3Lyq7NS71xfsi/kKXClVY5kmHpzpVbBamRYwil85jdmNVRhEM+r9bKANEKJiyu681QR0syGJZifxzl7zXmuUWyu+FanvithXDWZPvfWYbLFWTmxp8qmFpLcNxkkhOu5NTXv/H4qxD4Sirw6QtnwPOwIa/J3JbAOTjRk43nAYYDha0h0clwBwj/AtbZZW32E5lMmQsUHMQBrxuP2SYtHTdCyikzEFpnB9OU/TIBkML0ViJPPMjZK5Q7BPJKymT0uWIDYm4bed9jexA5cw2CAUWGDmbGAudtFLxcACG4dJK3OLBdTlHcRMxC5c895ldJCECxEUlgN7zRfx/md7JWI+4VWzaOgM JXctA9CstxQvkxQ949Nc6marzduKELP+0+wrEMI06mHrkOn7Ddne81v7VfKgngPqRzUxRDAj1ms7oOx5DdK2YyYz12Dpwq/byWMwaMRKdAEAdYoRKSMsJ6OLMLszE8HMhEUCRzkLYr1lsLxJwFMlhXG6ypAql9KMaE7CvE3iGpdf2uXr+roIeoaqbfCVevoI4DTVqZ3yIlQ1HPZdFxgVymlhDFWBaZLPsdh6agJAQo4UAs9iFuD1jDfJ0YDGi4QeC4tpOUQB8w8cCi/ShzCmAvzkzhGmYOG7KFCRNAaSooBkqy2r9c4ZmiS1k5pWezV/pJPTij8dYlbSp4xWAUjxzukQrHrYXZx19mSvqg4hlVITwpuxvuu7Ev1+ru1rK850D6dhFAfJQQnuesZW03azvw2DHrWbMS4TRHREbbUl3wnlqheJ6yHoAUVFYAzyXXyZUVJsys3YDh4Cew5iDMJAOtBkE1YAoIU+MGT/ioVIbQC7IizqfB24R9cPuZp2GePGUe+QCK+iM FKeBADgoHZeF0jXBm3oKXHFZql10ebOu7zEBeJInfxOjDugf9GHFMYQNQS8PtCE6jRbERzsfYZA+BdMqdReES0XJZ1HQ82ggOGTQ58MjIVneKb1Bd9uFN0jlQYo4IAa1/Dwtess0FZHKAsuznb0oHG5ZMlbiDwhHbMHsIveG2herS9VHI2Mnav3oYdi7h976hMkFvwmrcOY7G6TzRct8kHVju8VuMBf3TkVHZq4h82NJYyoPo64Q5oBPpCsP8UExMYLB4q9qxaDoMs0ZqZLCxVezAAkwhdepDilgRU5XQYzkemBUsj2EVg40AXWVWQBiRvD4v+z81Pvk8Af3qEKtVdP7zZKmT+wkgNjuHZZ+NErAWhwxIeWfACNDdB1tg7VZsBFx5t5C+r2Xwhxt2G9RxZwifCN9ZnEFwo/Z1yk0IPkwGaHBOGkwGeR6jltwWL2bJVj4IVwxFbdYYb0mRWnjN/PXl1syF7KxXQSuZtQK/5gzHF7JhtMC0nW1K5zpJkYDnHdkBUZDM 0S+pb1wPcHjy9C9DKouyN8ZztnZr6rXMZ50yTAZfa0XWPgZD8lk5uEvhoejS6ahAV5/jGZkWTXYQCQTU909xoz6x40a4yaJfL8T64QoUWS2PDjZTMP+cQrINCaIBwlPU3/4G/g2kBmUcelp86Tlk0cOqhqifyoS/sG4ZOC/EnBKTr7mVkvHsh+ZFOaePMqhsm50kemE1XISDNVolr0UTpSb5lOQy6CZ/WeVvqIdB2x3ZBEG1NEu/vzzHTz5aQapXd+uhVrNg/hFSu6hPe6e4wVQLtRcZ7zNGCiPOuJmTrLjTGyeHCQEMahFVJFECisqae5gQXB+4uokpp4/F2fRfZsZNYmRh840CCZYIi9czwOchIZ88UmQRmZoZsgvZr0PJhZrCXReWL109fMuSgKdJCYS6Cqlz5JdefJpqh1qt/i4VgPtniqxCCGiz0h0CXKHnu5SF9ugaMnqDZxmmvsW5J3zoYnhQtddFMjKgVZMHDgeUzfHdbw1E9Qn2DYsBualvW4GfrqtEM ukigZ8hyMny9S4eTes6BIKj/zoGLE3ZqUrlqdccLyH4NvCffpRR4qhNzCjOCbPmTnDjeqyGzY0tqffCscSaDIbel/QD3CXSmXVuztuNKalBBn6mjo7p4SZA0GlSXQEuCInia/hmOxaq7hz3IWKAl1BauDvRdWN66PBht8H4gyZm2c5UaZ5P2wR/aqT/uIGE08imeWiAmuldVESLrGQMDEu7AasCiw4siF+l4Qj5U/w5upgt2ZOr2NmlWYd18ErVObrU2uxTIhZ0WpDY3Xe6kNWiXe4vVEujxGXQWtxAapy4lhqNObKX9qgzulkoWD2DRUAljUHZTiy4agMyTfY+xGv/b/uOyonPrJhFZJjLWCjqnPIZgH5QT8c1clFa5lKioABitEKTCDvvTAK82I7wU4o7aTbKPI4H0NxzD6XnVJaxN27VqpINF9WnJKNdfCkF3kTToPORqwmLRhmkc9YsAPqH3VtxM/9Jiuu4xsTz+QFFdf5q3PdsAmHCmvBZ3L3RpNViML0QnM XIvMhJdRceNbFeIfrAjkZW248je3YWLId4hkLx2APA2XHqxJaPKcB3efKFqfrsF4qum9j0hinLPt5Jr/WL2QzSiatU7TSowHD8V9mSar12a7mujFX72XAnbYOteua+IekzaTjIXOOzCdlslImHI4+SshwDHrLgDnNEkfxVjsvgVaSiRLgRjHLi2kQ7zj+MsGo6xEULrafVvUXIM0iiEGauFKM6c1MGbZTYlIy5W3eCN8kwiHokpoRr019g1IguZibJgzMnxNwkO6IJg3Uu7Uva27djUWvD0hsDrcKxNHu/UGh114gqz8pRbWnzvDV1Uo9FgmuuNFUfxlO0NJav9aNPU4hm0i89sw6TCDqzEleGZpnPt+4SgaP2dS6sgkvEibLiyILDnS43LK2k+IrE0DxTCjP2QsxBVPaQj3Xmfb6XzCPhx2zeQZZlPDmeUZNaN1GtV8uQMezClBHnuDVVnJLF3qMk1MjnZGuKIq3Xt42nAhfWbQezIPiBEJjBtVQ5V98obRGDrZM ge2LIvf01+5FmVJd0Ga0rwX2RHlM1VN2bFCHwEx8Di4Did/up+8FMyTUia2BPiLyGPPGc4lixZfp+zuQsnQGVd+wyGMe0xxWHJv6Ea9xgYQy2sVSWAqhwmhKhfT07jUKYmOpPT+hq/8d6kDarsA2u6MCqzILcGn3MRypmyEYOn6JhwHURdRrUkjyzWfFBdZofSMqFN41uGFKYc4zqeKeXstgDDKMvOmagmK611h1qCOTOG2rnSciZEecSczbnn3zjwgcCHp6wepEUb5xoAfRxq6Q+wOnUhrwrXa7wSPZmnuOqR5MJ5ueEY9/4ZS9iQNWHUE7JljFQWhHY059xt7r2zpXwOZNoiO+Li0+DmRt0C7cPVmPZ9McJZLFuZqI2lodG9lxp0eBPfqoBI0QjTwevsmDEODOAJMdXmYOyIK/EmoZYC7CHg1JhesOa4TYHLgTGXzCnKclGY9qpuZpmVj1Yxjpx5qyFHbWnLPrgdI7OozIu8GVbLnpYN8xsqks3U4R05uY4KEzM ROOzH1yFP6A67JFxxnIqeeqRtKcwD2oFmf+G2UiQKySBI+eWJHfEfgqSP0DXEPvI9/gy4HHqic9JBsOoY6z60vzCyupViwRl2C6gaZQzdF8gcL0wxPdvcS/sZmtkiqEhCPK+RWvgcOK/MyPFgPAYI3QACoyjvCI4rgD9x57lu8xhN0faVwEVUpjNYu5p0OG4eS1anGVIr4o7PuxNKAYoW9Rd3uFIQiMekxGgoazT1XAhaztWA1auQO8GZs1tRkt2fDEH4dcv+dU/tMoyHPaTzf8IL9xHkuOrU5NetS4jJdxY0SKqk9dV4V/hvrRfs8CBaTQhlr1y5TIyaywLwqHqYaYVm5NeKTJ3bMVqLbhYtehu5zzoq0TllLXomJCiXp4RhioWnQHl3CQPPfWs8Cjht1iYOsKWsIiOs889EfuyrJmB6WjWrcyiRxKKrdNfhjNzJmWVPyZ3S6A5ucOy1tOOQFe4aBVpICyoA+22jlOZiSC8GF6x6AQ69j4elrAApwtDHdA/dVN1M nnGSznfPhYcVIWtdEj4sXoFSmiSZJgRSW65dOiXhJ87vtcZgDxmkyMVrh3wQCz2zllS/Jo3rKJy/nKcf7sc3ZyNHAnZlwxqXCk/U5W9dDgjxdYex8wZDuol8nsOAxqc6wP6NauyX3IBkQTwpk4LReCIHfmOOtS8X3kr6Q+4OfIrBEVPQoYyH2l0BkW/4aqgVwJNTSepiGlaByrlaLs2ZfQomXKk0CNT6/JJOUOfcOqcmSPU8ppeOYszU+Knj1FeeZBmQbJjugmeUu2B8D2blREMM2qv3vxYw9xYbEKZIX+XwMPYw31Gfj0kLpdneVANnDg7gnCUlM1ZTY18KnrRgsPgdLIiwi1tiuHJZczh49ncvzncifKg1MRtdllEocuFgQsONRbPhuxMw+aqgDYEHch6+pohvk6JovyXzOKVRYDMZYDQXnHUcLtGuiRCZ9sWokSjUwo36HuhQ04C/NYGat0lNSGCzEG6Dc4nqpad3p0K1b7VNLlgfwTue0plheUKmYUdcn9I8M usjETLZMWMT8zANYAChmMjXA8XcU/4GZaKw+8BaclujQ3kxA7dIfMoBk60mRPhOMlZ0t+Dt+CUJIdLA1UBkH486SGT+Pe9Fy6Ah9kvCMME3JA7E7QjKs2K509x9DqQFXczYzGr9hs5MTB9nPUqXOitNpudlKICyY8Yk2+OyGoYxaRFbrhwivW8V50zG6rCg1FWLpAurpIGwoRw02b/omzHSqsI1TAlIx/K2EooZ4y3zumO8bui/HdQTZbyF3mM8j0K3iP77/j4COdhrYglMoHSJmgAHU4z3rnRVlPaiSjonEd8ziXGfyKwO63EFQtvsLQFcB1y3jV4oFfqgdvJpXKdCyFNat3L1ja73HwvybOJEVMwBxFkDD5zYoQqeihrCfuBEcDv4Ygm52J35sOXrKjrAfYpx/lSl7nyascgb8D9rIGM2IsZrxtoGC/Sqrw4EVuSH6PFRDm22WX0FQNur6gJCHMbRhzm8t3lEUzOa2bGDI6jtUY1tjMw4ulPcRd0vUtmDNwYRRM XCZrnWOY/OfbaMCMtGDJM7HWMuFd/pmTCotYrMiEusFNyQi7hKyzFejj1drUtaX30CXgGuw8T6QYoRZvGBnVozT3wMXQE6p/Jhs3EBN00ME9+7BozoGY34h7+yhXyVqwD7wtp2ge3BLLVZSsOERZakMEUAvOIY8x/X31Iah1dVKreWKYj/LO8n41W05LmTDRthwSq4DjADSKRGehKeGBCyqMMecRWHUMIIDilWHVrD9CYZx9HXUR8OtmvMY9Owhp9KYXlwjq92TlxUF/hcyk3kNPi6BqsgpaNgGIDxhsUUuwaXrVxKdZBTzIfoHSrPzWV1VuGdxvg8OaRWN68o1ThFHkTNU7rR6RXgtR9Qy/wKC2VghPFCNW3XcQ2OqYRyiIBikIcW1qBahyEeKzxZF4no2cjRaauWPJjARGEgzEeLZRS1R0XzLUoBrAXatR+sr5Yc0zHDCdOZqaLkEwVe2Zye/H7PVBSHGJ4eAtbUoycJt45KEa4JjgIwIUaQ0TNlTWhiqa7w2cM Vk7lmPMhyzkuy8RzNKrcViZeWoQMMr7nuYoLEquHNG6ZPsHvWYsOAoWUxSB/gNdZ0cZw12w4MnGiQFty7hYup/Mbx1q++u30LmMMtcvXPiQdBppAdPqpOz7JeR/SAXnnYwgGAVlRPZLsEDc3HKH9SNQCAh4yTjtMss9oCzoiAsGXrF88yGd+pxyGYx86krQQU9qCDZ7atz3Q1GWO9KVaGGYW89fdDTCJqGlzV4mPu4rogX3KKEPi4ouuPfcHqeo3fip2lGv54UK7rGT7SJ+ixd/5Ab3LnhY68OjOgkEOMcXE3QfXIPs4+V2iS1hPncGr6WJxmAAkzrQfZ9Tvf5iVfOj9TQjLFBOy8aDnyRQpynZaxAIjGZ0W1dWqj2dtvuUzcyp9zdTiHeKRScGfls7fAN/FXhoRN714M+KFPYtkzqzaE+hKgIhP/hUdXwtGJ4pBGcJyOzyUJRsLCGMB0uGoVBSIpF4bI2OK+QqtJPiiMgGoxZ6nhPHcJuabP1yWXjINptPgItwJM NnUAXNJJo8hYRdbPZwtDrRzdvbJvMVhel0PQqU+nYtWgjRRkqRSmpzp2+7/lLmE52X9JFGjdpoZ8qibvZAsUKjY8aIr4bpDojcpAOelgx/aVJYVRZE7Oze+pRA3+jvTOpPQjF87IIFRQ3OFefWTTNJRseAT8y3TBPO1TbaHWdJWs4ziULhLqfpLLeNmo+9QNR8haxQx2lx5DjVbmJ14gbce2RtjyFR4E60AS5CnxfHQdL4DMhpCdZxPxNuuIwNLB510JYwdUjWtGw42R8UQl8TsRJ3ICG4ug5m86fDRawwJtOL46uzJmUuSH8M67HJoy1lSTZ6iGsibRuG1WyCpvdxfSbjBoKGxqo3zTgYRac85zIjPO2ycJcwnRdp4lQe2E94qtEz6UHMnfxsq86FjDyAMjeBNIYRST2CJXrtcEwID3IIpAcxBxmwLI9qzn0IvPuFQf/G0TKjYri+LCrDb9SBK0tzZQTawknhmEF/PWvCc6hAtxcZqnoW9qWdlTJtVu+ZtVSseSM C3rfEr4qQE+TuwFTlJQefxNid+LxwoXHZhI0H4sKre69uRmQsvMQp6L4BbD1N1TtxA1wG3IddhUpOerhTRr4vkpoMndLLe460v1dZojY0UaHqTBFJRhXE95xE2maxgynOsR4feHIG9F4pLWQ6AH86EKfxT51ZxCVyCrAH4aYYXRTGiB0hzjDM+GGdVui4LUkZZjwASdnRtLME7eUlu7Eshda3hzcTxF3mIZ5BUvtTB82Nsgz6JFgwKedTbie/EH4Qd1UQlZoRwbaN0I5wFnuoZ8DnSnGSKObIzUnolyCosM6kBW/02Ks13NucB6pTBSSGuw6G36tDrWjxxqEtWxDtcBJqcCeo8YXb5jBVOCXp+xlIARFG4g9w6ZjUuLyT2GxUds1plc/SEc9DvNbwSyb8DxyRClJtYEEKwwG7k39GG64qezbNYi9t6dbSqa4zyPBia7Rg5up84FFPpmaCs4HYO+CdfOKvTJalwldfA4Gw9K4DES9jIlCmOgboEIKbjUfGd/HMq3nM HWUDC8p2sr9MfJ9Wei8wo1OH+fkiEBrETHhfiABeCiatntsiNhyZCrZ1wRd0m1dlEnnmhb4vxuYTy0Ro/InyGZwtwofAiRGrxHEFgR1GLCa1ZNXuAkLLA/DLSstO8Sn5VeNMrQRSpWEQ2jS2Vm6kpfjn+tQtQ1fRcB0oUH6MxcYx73TL1hQ7xPs+Z530D7ld1HZkTrnclrRYQYRTZTDBQCAZYTGzUkz4agKWHb08yG4EDAOcBMgvOB9oN6DMAL2KAYFc2q7VjDzWvRF9xeZRm6gc+sSKEVmn5r2VDZ9OyrNFEdDM2F7Y8wiDKRseIqUX3NN1pbCTIUfaGa/kY2xecyUhDTiVyn7EyxbIo606tRIXl/pDqvNIqaL9LNwFNP467Md/IjkqiADR/zKAyIzz6tnRcPfEQYvKVVM7AVK8NKrEg8x84j+Y/4aqgAK7mFaIYBcQsWwvWMvngdgAoXQ0+VbaiFubkqpbFe06gah7SAOx9TW/ZjbDxUZcG7ZemH0vE1Jw5ZkTM sWRBgPLIisxYYoJipQM0b9TgYqEhsCayQgIbBgJDcxYQkyZe/hcTs9eFPYlUQj9pKvIA3xEbOB2A7/stuXyPDsbCeBlQe2GyMpzhAdWFDXB8XIzIEGo3swheXBVnVqcqSqUnpagxnxvri7umpHljkdp6yhGPg4ZTpTlKFiNMrkZGI9LFlLuk5iE0OW2Q+T/FH3i4GbaNVS9PUw8Jn4SWUcxAE2zMSqJ7IY9/XQVDwssQVlpWAlAAcBUEFl7/DGZ4fBeQwrNqqxgbAsRp4L6VC0Zq4DQQkmLNjrBU7Ah40NJI6j9xhNWJucy+IadvlW2lHXgHnhRnqTtVfO3JilR5+s/xjwjFPQSPoSEgXqrV/Y46ONfCxgQ2QDPC3n4yXfIBtrRGC3lDgpAAYrsCP4i/CbwtouFGVB0HxwPJAJAtmw8tF1OymT4dkXDrZxzf74iJWRyaIlKA27T8vut+U8UxVSKYqJEciFHpRlFSTihTqwVWE4MhR9HilwxONA5YORQENIXYvbLHM bJS89J7IAXlOnLp3b1F3EOFfKfdSi5/E15kIM/GRfaoGV5wMzNGz8mskhV975hkCnThAzgRyyHObHCGwO2wm8wVLyrkIN4bmLTdsVIX1CRm7AssCGUMDTMHKbLZUn4xPPUqyx6plc4kWN8nRNlE5SaKMak4RabcOcYmJHfUZ1A6PE4o9W0mHvJhKNOnKZW9CDNAy8KZvlOXHymaa5PeTB3Xuw5wGDiMsh7ZJkCPwoPorMofAmqEXgR5ADyHcTUrn2ZIp/Cf7JMvj62xW7Kf2hHZM5TskMq/Ae3vd/XfqCi40jKWRMvVaVMSFLQeODiS6qbYJc+ccuEzYtAu2pECbHIork1jb5mSc72ROYT+xMcLpyXndW5TI2PKRT1OdlRFAXJNQEIfEoYgu23wUoDhZQWt1LhBxSy5Vm5pjsdRexMSgKymsv4hHF5vHjjuE2iqlMpAqeERQGzFixgCGWBkZoDc+Q51V/QBB72aqAGpCgebcGpy23YnJrZ+txG9qqmOKVNLhgb1SM WEXR7/jiN9BnHpEYlkWMRQu7dndGK3B8z9agAnkp7EBbLVVIV9SYq60TytyHvIk5n5MrP36PjxOu4CV4JAGvAix0ATXlt50ZmY/UEuZDpDViOBDC5Bq0OdHnwqwkIm4JVeZIqU9R3FNvUM9/6b2beTzD2xQFdeBXvXxHxEE+JECgiYFJ7sD/sDM2M7Ne+ItSqtMyMxJH+/c2So0KIFEG6mR51dJ4YZyonX6gHbtLLXiNriog0umXcQ7xSKuJQeMs3KsfDs290qy4JPfN83SR5GjtWQqgV+xPQonBZXJ6EZx6GX7kslFUbYGYVugSWT8Lfodd8zd9rZMmMwxjktKy61Dk3Mlh21vGbNkN0x1XJWy4Om1McGX+zWAzFSVNp2Zdem8ymILZNjR1Wfnh2TsCGrR/puJ5UYs2ND5xU2TT0Y7w5v8uBlI0KgcOt+9rHHupX7B2H7wi36Q65gJZNOK74tF95trxnRqUKNe/ZlkNUhDMqOJkmJswyxvADOFdn2bButTHnoLMM UCUq12bkSO5Hhvt11b4vUS+TmBkaIxF0WgGuGyVCuVo7HKA67BiMs1xrAHK0UvMxNuvNFE4lRSZ7licxuxq0pcSEejQKJSYX0BdEjhZzStE+xW0JY0tzl2Hu0Pi9LU9MiafcYGl6faEGxfBEDMUUlTDrU7U9FmUDPW5BrXnLm0Wn19zYN/OpThrdQ73hGbCJY/bRTHutmWN8WERf5jF7LzJEZlivIkWELhnJLw/SExyICs59DegwV9DyyrQZdfAuAy8qoal4+xnR7Qbbgy05qOOASRNJQ97Tsc6jbjFHrp6bWkeSiPLqSsbiMt+E3lbFpJQLZnpnJ1DOZS6Toyb4vKwBBd6yoz0tzpPfbfUb0qIuIiCnEnet8cuYGsRmK/MlaySTGTEZAD0Q4tVEhDlq3MvYCQQMXDKN8hkxertXLDLo8lOFnNgqOKCSBQyRU2ybBWsrVp3lvAoN+uFcWYD9l76ne1aKiN4DiGs1auia5aa6tbmF5fvsGZQ8mbOJLOw/QLZo2TKQM auJI7Lasha7oR6QA7mCPfqrER26lp1ziRyJGpJNlbx3JFLYSqXyHBHzcM0QcZB8AcyjsiJIgWYZSLV+07BmpWKlOe1IycKa4Cq5Q3nqua6ydL93eCwLMlG81ln0WhrqVYMGPsyvVZLKh8a25VXqXAr1/WgqvJVX+MRTVOaSUX8yOsUSwJTEpuVCj8DiQzUUZBUxOU0MOCB0Z6KjAX2qii5QFFYvCmoK03kJEpGAwM5YsCij8kqtKIePCXow2kVdGPBXT15HEB1RyzJAU4E6UFzuqqfXSpBWFMcOa7L4cxaDsA+FrhI0PVGNy7YcB1itQkPLbsZDGC3Ro9xWceSbsuFkiQUA90KG7FRe6KxaAhV3EgqByeuxFIZ1IeJSkQlPw+hW+jDcSrr4W0HKuhONeuEY64Nx7kSQe3yc7f8NnBftc/2lG95hIT/nHMKxqMsu2PCcNipgf/GGsa7ZWY7/61YkJ1HUYd7XwmLWdDarlCi3lmKC3RoSv9pJjRSnl/mTfVl5XidD1M pvmebeA4uANhA9mCrGdc6TGQxM4xy7tZmbfo/5jnKyTqQ8B8TtIBXCNTZ156SkKsHMxxMP9oVmOfcDlifUFUC9UKqVV7ujCTc0yY0nwx25F231Za25oPXJlnW1PAb9AianLn2iY2JD7zsOEljMtDtDdUiG9qSM5UKzGFdPbBh958LNpsTUMopN54PnmC4yp4s4qR29FBTnrYjeg1sy2pyqcE5kwtSolADloIyh8Ew3RUV5sklbOwe6UKfwORd5IwnsWhmVJ3XmnWMpZVKLssHxfRKoZTs73p35Ogty9sLyoD7bw66GY5Vh50Rkm0wrTzWK5ciWcJoHe5XAzy30UtbE8R6ct9ErDSC4SelFSAHCQxYbZiQk1MrK0IZFkR8l89+ZTPw/sEtl+j5m8jN+rhLhIX6jtA8Fjjo39i975V0ldQwZyQNL38+uIWklq7DRsrC8ejkU7Qxc2bcVR4ayjfrHcqTTUUuOVK60jqIPqk5l4SveNMnRrlzEzuOUTLdPbRUbl870khM r+7JK0UXkT8/3yFxOOl2ZslAgh7zN01qGMQubshMxCtFWptqSOS+lkZTcxHo1SdGzZz+8MV4mk/X+dXWt6IzmMu5B/lEqlRx1mj7J3X5MAKKrspDP7TWq62/ErDiGSIEjmbGD1IdL92S/zuHKrX1SOHiqDHyH5BZZ5hlU9hccdknn4vjrwo1WKo4tFu8amX8HxZJ2DQrtmvWE+SOB2G+6SAHF11VgSNujhvJ7oqd00dIJefTvN28uG9tXtHvg76h/gdNo9VVzEF2UBKJcMFjGXgKer7tkXIqedLTeEOscMIK6FInMLXX2w6/HB9Cx54LGXoHmi54j0I5F8YvFKtKjrl0KWs2CY2NQ9TdxSzodh5P6uTAnnHrEPXOXCoooWj+bDEH3LR5q8clo4aG+0eG4YEjvixOPtSycS4XZTv5OYoTwhR/OR89S2BMc9Nl3QrDdv3JK+j1rwoyVRgWn1rn8mk4SlObtUJtZv7Lec5AOc+46tbY1M/8Dj1rZoPxJn/St3zK7Rc8M Uxlyv1VivkkWeJtRZM3S7XnN7wRlMVSPecbYnjggoledOpuClVDcJWCLEA1boTHaMD3tKa+Oe9Ala4U2p9gMYzOrLU9YGQ9g17r4SizdHR2dIGyTk3t9kuzenQhOQYo/0YJpjTxwyJr06x7r9ixUnVMPmlb2qLVh+J4jNp3NotSfEKliGZk/mzn169Flc6ZOKqY0sOQ326FTXslDgDxv6zwEv1gyljw9jrSMxHHGXflInR/aFPKmLRub62crwx8QbJrPO9MFL8JzA+/Z/6cbk1oNyC5Q81pX8jMpr3IlxdyeM3NMaMKKJR3jEHqs1XVCKlxCDGd5J2YFp58/JeYYPj6ipGh4aFrJSF23CR5kKATg92SoMD4hMBqBE83YKH4wL+EK3mLwazygzpEWtq6ripT4dC1tetsm3L623AooeskDHk0ekXVldykw9AmMckZfR9UwxA4ZIInF8Q2D26araOqmWByJLF/dAunEU/z0w1S/v0960CQ+F3bnEKOB7LO0mCgyg0eUM 0LMwyCbgWnQxEymyOSxO293seSBsgDp6DUc4Jjh3+kfqBuzg2Bq95nb8IxONfYEfEvjGR+Q+C3zmHEEIj2dk/5F6+4sXcz7abXfJcpr2jdWs+qRmy+SYlj87Hgl0emocRxb1nwPU8sCwamlqLNdqebPYSjEIN3qmUMaVDImZate+mRHI6RM4xWJc8RjbN0OSubHCJP0R05Uk8VYmPMiQthLDPJyUcG4Wpu1YYpwxdyFK0PkisaWc4dkPz4ZstVyr3yWDZJzyYOkGDgwcR5Fv4qbwz6ODwZUj8SDLfo6CG/2SQ+j1g4aIlcLc3MjRK1iDwZPT4iUa8ZXnPdXxi0OMYwEFK3mCwR5PDgmHFBLHnwnOdGo2TdCVTU91WnWPwNg1UAEKfXR+GnLSD/h6tqPeucgmL2jn/C3uq64BKQp/jmY2opt31k32eVDMOYY86qcSYm9upxC+GOR6Pur9AHif2xr0vFjGpA8PmLKTW0tPD9h4WZ75/VJwij8C+vB8Au3mWqe6rs4zM VacnnKRE+WIqs3iTAwRfdjpXRdJUzHvgnxByc2Rrq4oEf4xZjc2WJ+6lMfoAwy6wIyZ/oMZuwAL0SeDbTbFTZ9P5g//OiXhPDZ3+URaPLPG0GTe5qo7MZtC4Ze4NPUGkWf3nRhb29GT72TpVzSHcdCmuabXdvXhux0VC1BzbNcuHTXP4FOlREMW/qhs9plqfsV3+OEf58ggwk6j5lNPwHwE3Cebx6rzAeHVjhemPUJ0S5mRB0gE9Aub7nA5bs4jAI5UL8QLQPpKicr20mBoccuVN8mCHvp7/0Lk9rUBiAfJGOCVLnRtr8Pq1n/ve9jRarXuBc/gwIHuZq+tRWPIIZY0qgaZexSHrOubtTC7TsBDkQCO+bWzNTgaOaK1Z7DAJ46kJQudCItsFaS6CML2p5lv4S3b/2RT8JT8rX8lhbhgpwsOiiiII+OfC8eeD8Cu/RNvmSbmcrhWOtmj4VYy2ptFkBWr+JyqfkjyUUe/xlTMV8uLc3U4hURZhZuKxhwTFzxzJrWQIM HG5aOZcK15xdpthAco7jvZQrDO1o05VVzqPzrbKUrTviu4rUSe+PQN6klN15lcF9r48feMMLuQ4t0gPiWaoTbVXKFvw5iTGH8HkVYYpIp7CFOQiLKbYqZp++4NCa8LU9kO/zpfLr1wmHiQOG4i03I/j03jqeuxKVHDGxrYTMjR+XgFtely5QD6iaNneUJmZ71oxgCVC9I87JBb08Rj9t9jEkfMDHzowhfwnN++OLF1ga951PnkWH7J73MFMLcD5abnp4g2mMiJWrsur8u7hqwhhnSixH58+xhswcFA7zzbmbqPH5wY19QIvtpX/ErQdavwljQaih+bx25jL+GLvNyK8arUR04nzUImQiwKFJdx+YAHHZltYxQ9H+rjUYQrJMWBted8bM33r0cEnN7I4QzdStc8zPOx3KmJ13Dm4U+6JkfZ2C/RP6B7u84ODLpHu0FsdtO7V6R72jKlGif1KE0pFCJCnzbDGTN30I/uya4uP6SAENC0OuBJHqbn1gyv0ZdVjOdXE9M CQ1pnOZnL2N9NDzBs+0SY1MU3Kh9n4deK2CfmNMaxGBnHsjZUz7d4GQksSjbbxTXrkpzi9HVXDRcPk5o2fAhM7/z6wV5wteCii/kF6Z1HANn/nantKp0L8B3PZo78+0jbzbdaNftpvvbkArVuu/M7Mu1V8jB9yA+e8JpNqk1rUa9vkGE0F1URxv6ITeqt6ftdRnyCu+6JT2s1+vxUv3uIQHQznFQtpCtdiG4wS1Lqd5hU0odm1RWyeKt1rNL2Pb6qiHk84ytJWpaKsIgGU18BJNC8xaoSfWphzTP2AOV3uC01ZY5g+4BO7HYInei3sNduVlOL4m3nPsvXYK0uDi1PwZ5LPk/X2XNWLYPEOhMbXChwzh+JzvenOrE5oU729XshLevBeyZc2IM9kqd0HHp1+QaZaiUzoyw2RXqH0prfOiuXtU2/cIb7/vDEvr/9eftiuw/mUL8ArkFZ9lNu/XU9G80Nh9iweZGaxozDgmhb21neTMliGbbZrv0+nfRogd9l2FRv3YUM SfDYi4GG7S89l7YqOSTwUdx5bKRTn9C5nxTY0dvbXnE3M5lVKkFzFkKYREZZNv3TzcZQzEYT9NAwSvHtDr1wj4ebhIDbQ/3rnCRi+ICkBzOUp95R7BLbTc3B6mRMnV5StDDrC8HXLd+5QmIHfhaPD5qjZ2Kcr7xRu4uagK0zky03/FSJqUZvVUo5M7OyMxu59wG+k/0ScNFb9m5cXb3Vxv6HXqFsY3jtZvkJuKsgH4zAUeaNiwKuS53GDznhGAUOBD5xVlAsstooUSPrFct48T6n1zdfmy0PzweOkH1BWVxZZNppnQP6HviTwPex+oi4p37nGwttz3u3bnZj+4xZBWzzS02eQCi9Ltw21I6nwk2oVyXvf2eSHvDtTlGVTPnS3fGkGOBDg2ubPe4kX0yOnqS2MpFORd5xVo0HWyxvVE2m+XHF+3o66Sy7eWIePsOxZj+xBRUiOG2k2FEq3xbPYbj4uO7rdL9bnuhEN3pHlQKv6SpS+LIgb3pO1TDOGkXleCGcttZ4M bV/l9x/Jgh306b3JprEXqZg8ma52Ps6cUKGWjbnNV2l9kLwdMdcJ2xpCqEl0/zt8idsebNv99oa5xsnKLT80WNJF0BtRmckMYHWGu/zdkw17o0R8OFjxZW/YIyEHJ7j8Pm474MudmQVvunXiRXy0RBWvjqFFFzzWa3E9s/rfcnY2GkHYJWqqH/sqvbOCv7Kew4GxjV5KGmHXVp4G43muYe+NMKLfwzhAV1z8kS4tKX4eiF3UIXqr0XfNYckXXFYtwyVtZmP3WEkf++wtcx1HTq4oYPjMWfZPQ1cKLF3KV0iYB8pG+/ootIsuf2iyFpDFK7fOOKB6fkIgebFRrmnrFwVqSSrgUk4kix4E2OZGVuBwkSJzU6WnjnwTv6fUdRxNhHp0ccoFMMSO5xPNzrkLmwxdAAhcZ7TiWFu+KDDHW90sV1PGDA5Rme3FUyzrT7UgD39HJ2vS12wc55mLEoGTjOG3E2u7h/gdxybj8I7JM0MzOWkcUpk3vINb2Bz0JG5/Oaj1dyWBM lsLFS0vxvULMyeR8yx7gXESp/v+0wMmHeH52E7euLd+dm8WXtOg5hN55JkQ84tE7lpKCM7bgNoUG+CWYHJnCs61IBqKajs6hNtAkrYLrYNxPfruSEsR5S6DGnu3+K2pKYM5dbz6oE00fyxXjut2v5AmAt8gPQYGSPf+P4wb5TWmFRV0BPs93HFVxU5iSQsV7DN0hXxmYvuO2E4zmjWU19tdOVSGRYTnXxBKPlHU+xCtcI+iOZRUCWGmHfR5VH36dGkRY4TLzRFcXrPxNtmpqLH6d6sexWRaZ1HnGmofmPKV6BDJe+ypOMqOrK+r9kb+mEhFbBPz/zCgXz33oH4BYYZiHmYdyqFZ6Im62fM+kObVZlgGQLNWdkx71m+fZ5GEGvImc0buDyxUwut1eK6hZlWzTTkmSMzVHojn91mhmFGYOeo/Yog7jTn12dyxCLa08yI59zB3FKUlna1Jf67wSza6gbPqxKiFsK6+731vU8kbj4u0SqhXeYVlerRly8S0mZdKBRV+fM BvQuHz/ujnU8V78vETDeSu6wrXhSlmdWxQStpLy6UAQwdPU9a0Whe0TBB+qgdLKNv0+01rvgWjX9c+JT08VrxYra7LU7aBgM/A2bjoF931jkjP7KeeUmRLeEaizTxosKgT0PKX9tyuBRqdeCHJomnCyPHgUOEJT7pBovI5CYefGdRrYH2t4cIg2f2ye9R/QbKCc3l4xmdt4cMdJlCGW7wRcY6judsb5hl8r4p9yMPBOA6A0IHoGtsLOrHbfmW3g3NY+H+hnoC6woXH+xDRjnm995o8KFIzgxNVgD0a7Y/Ic5ta67oHEh3O7bHfxsF0tQDfKN+DTIEuX1ErM+CRHBHhkt2eJkVkMIqzXNxl38Gq6yTYxh19Qujiu5wWsNkg3iHrBJH7Ms/WkIMF/mBH8EhDvUA1ZNDbgl1eMWup1UChcx2chgaIgf/oQqp5MbpFPedU8wIOglvVPLhsk1qbb7PwUe4QntmL5T1oE4s9h1WMnMMcr3FTFcNtMp3Ui5yeP/cJcBdQnAM iYO7Z7O3vjcGLyd1a2DqfmKSrIZ19fYHvNMt7mP8yorgXCrxAM3vNRF9ykE+P8wN9TqDLM4dlPbvS4rwubjiPHjuGyADs2/dOwN4wVfv+yh+kUjIPz6AqFeK/leeb3ft6Ta1c45GUcnMntSrB7TQetEItEUT31bXlgJj3rlQp9TTyCEp7CmjltOeNPMsYPzH1xfIG5vjAYUsln2MkhEAt3fceeKJZTDnS+1oj7Fl20WM/iRYBzknFk+KbtRz7XM80K1EAXtrsiNHU12QvzPjnzAUi81wSYcEiM6WSdSPh6+EwnQfR6vAu1ZKg4yC2tPlwkesjVGujNkLNE5Rz+F7BDTFrxsHmuu9srXPR4E5jCG5hBxsDbDTpXlB8YjEb42Wto3iDNiZ7HRgH5RdgBeWVCuf22Z5GePwKvQJ//2HgoPUWe9qJBZ8cIBFr4OaxZxOqSFk3YmzeEvTFvt9nVvHh0Yo6EydnNm50MW13r0V9r8WAJhbW9jr+W9XtwKlPlQsCh4YlXj5M LfrmTssWDhTGsSCLcYrh4LDwomS2dwqeMmwPbM8RLoNGHleUn76A6OV+Rmup4Vg7guFvKOHWg+1MwbepCerQI1fYN0O3BxHSFe4kNySHmC6Zi3EFeQQhklUQu1KGOZvpxhhpzD8QCuciia5yvloO2MYS7lpZ4iRngHTw13SF5VMJy5jwoPejreFJSugwOPtJ/Gc0GzZHpmYh953g3oqhiBxguDmIgWf+fHksIcglp6//E1LBe0B3iJAWW9X7DmnyhDrUdRISkcc4CJMS3vX6FTkadnc8NhNMKZOewKxmQ7vNyZobvH/hzn7XGb16J9xwqWoVwKFjXj0GlvUJ0+aIlSe4OlJu37XD5fx4Uh78aSIJctdUnGiLU7Jm81CmvBJpTocfOhDGVEeCmkZZe3LjAr2aVlpAld7uI4s1PIBJLuQK//Ow/W1WUR0uRUwHU2UFvs7UORx/o4lbEIjNGSNUZpm3bkA8xeXA7vND4xsP13qTfHHn47dh9KLUm+0DQAnARlo5PsCtM MntymH5J5mhvuLgO8+6cROZH0GLDvb9bg2AdLhrzBfeeKvQ99jXRAhDjO+vHJbQSdmO/UMqPBdmPdkHQ+nDXjy1QL/hhSZld8aYVUWa8dyXM6VGOFVoTVxR2VOysLHt9ce9jvww71i8+zAdqO1obas9hwrikn0TUTFjrCb86Y9klIpmYphr2oD9dDmOseOeV95bStafRxN5Vq9k/ryloUXVZIO0cm1mL/UCgxj4v1ziJixJSwJO+v+dfOGgSnHUXMcndkmoxxmJg6I0NhdM+yGhBxfY8NYFr6X/XdBwyzQ0eJURHNGnFi6tDeMFfBn7W1EyQCv5IqRmHJ0ujvqpOyTtBIEqKd391yKFSxveQOloqwGFr96/VtTlIYiQYpNUGuL8aAOGXKf7opXhkW/5YmiOuOReR0LM6fw49Cyt1I9+/II4J+4UealVpznGE6Vk114ynWwTvF236Pn7L17q9u5Q8OV95S6Zyr+pwdrJzCiDew+41SNEsQNgsxr0Rl+nnTvB9baLsM NKwz+h9DMXJCVE2QBzfaj+kgfSXp7JPkiL9y50d2hM0NPz5H6XVUXriV3c+X49x0qQlszfb/PdP69ad3i0cC+0vJu9Y8ylgolohZx4Z5MaAFNYCkZY5iONiBV3BTBDc4j0Njs29n/NKEY3sQ199EUrOLNh+c2scbJ3oGjeUT0zbz1PAYZCD/c2JEhAN5wRl8GXuRz5nCQqis9vGIn9YxIXbESLAwSDA6e6+44tYGPL0MGVaBa/GVHRXALhjab/Aoz0kc9Wtqie9dMTHE9+LkRmw8RnZljcYJ6ntNvlsuCxy4R7mWxYLFkiHz1G1MBXyvp9vYi3ATjZYNaMYRxeKWz+TwxvaxkkcCwJKDEn1ldb8cMNYQPSeoZ/9jqsnmnEckaHYi6XEX6piAWXr47OecVs9ZXhLGjUBQ3oI5y/6fye8wRCh5+9zCkQsbhkKIpcPEgldTi424cQMYNk8vPsH5sOkiWIUhfnHWSDRRSTb9xAY89nIzLaqW/je50wxR6TpOlv7ICroOM soCL5cJHQGsht5hgvouI+oXY2+hVsxR6XF2HmYgbybZzFsPA2AoCGVejJ3cC/Ppf+EDwk9PP3OQ/H6QG5iQ4V9HJchozvBJtmgUn77c0S3zBXyi+cV0dWDBF/irIFgxDe5uYIHewgwfrtAfuB75i6jA6bPrHgmMpk0uCMGo1DBP20Z6oaT4f7J98gJJhrjceBP7ayLvi80WeYNyuaUGjmfyyN9NRMLDjdLtI4T5gxBAUhCFLbB+qanKif9iMZkyZecPRMGxIJXjO8XoqX66OGKRT0lHyVr+E9v5P04ygfjY21FCAXyN7DSyHkPiTouHvwRhHnJ6VgzvY5VOtLwSvcmDLN8l5APHyLiZ8JF64ETn+C3htZiZQo+9EkgADfo0sbqTMZfhMnLx1Bb5PdHmET8ZZbavV1uOL3sf1oX0jioYb+CENNlIqSlcV9xU845/HnpKzSLi/MaV/Xocr8xMIJ/De8YmME96Ux9aD3UExs4ntBY8GgMYk6oTFtKBB4oMad0xeRI+QM hFTj4IZmJeGrdAogcDaoWFg7aJgfQdd61aIKV1wg2UlfLUGak6xtsoMDnJx3Yxr4CH11PgMpxEhhuJaapeIzZZuro+0BE5ivg4Dsqxrwbl+0Bo5UKhXiLUGvf66xHuJKQNbU2U1HvHDeMIvH8Uh63czwRncozPaJHvkLeYMUA2+xJ3rf6iZ1k1oO5/xQuvCbGes2D8T+yghS7Su2tMaPsfUOI0tbkKnzhqz3G6MscA4nVYGr/A4dQZF2BuY3iUoMtVFB7/7MOSvMgkR+FSio2bvj0R8bjnzL1ZxZuOLIacvgtt+kq2q/yYiWhRdn1FtzqKHGz5a+ssTx3r3m7kPu2V5/LKFSCbtf8rZvdzeEgHztO6oCvJc4ICX7JkaI2VQ3mLi8fhMZMxdTc9nyW91l4wRnS0OX2KUCR32oOrHgqINLPGT3eSSKi6HNHBYa8/wQCP64jaaecjWJtBFSc/1suW4T4aUMV+/1SzlS49mDXWdaMF6wA7DrKb/MM8NkBJj8AuF1Sv6uM K8pgwevzYm9P1OY1vRR8buaL/Pf4TFuJBneznU5aHT/YEJU3NUpHIpYLF679UgaKVL56G69sRbn99Tcxd8sX1avjqC3cNJXA4NpxHSxVxiTAR8lmJEDleVPjPZ6g7EW1iPRYWtWGdBZKSsGf+5Wfa8xnp5CGs8SnpRAqITaeNgLNEibzh6eItUR5wnVZq6O5lfuiRmsZ5jQ9dzSVyTBxV2xl/kuJwkutZomRv81LgQHnm6ze/7cCa+LcDQ2d7rDnzlWcL24IYn8ZoLE3FEX3IMfq/rDsGqcilkH3Qko+uditplqMgJrHQY0YPMLHxOzVrlPMY4NuadpvzHYdF5i/3+zv4fANF8AnSvJ0MnO+lv0rSVHbcFLXvZoK0bt0yN0Mkzc/3AEyAGhmMZUUbi6mKSbv6hVYjiYsQud9winXa2x5MZKp6XvbbFTtXNNMspCbRiKv/Ufcvmtj0mNDxlwSN/wUTSqupXS54iv9zxijrfLY5U3W90BN474LAYq/TgJ6F183gZoeM ROcj+C76FUopF7mke0M0RbEqsNFseQEIq1oAJFm8E5CSDuLAZVaPNSaCPG7GabBFHGOYbqzBWJ5e7gVAkRztTjtKifcpj3wkQsmgmveW9L2uQhlsqHAqP1iFjifXJA/1Rt0ncSj6u+YvQ+3AaxMWAGfyOsiIyCpTuKidAoe0UlXcNvhQ7FS3nqghFRGungXUHYOIkeSLP73BYumbbtxSsYyI6+e2DDPplTpcPS0egs/dCzkHh/wwa+GEu5y8Ae5xadOY81Sx9eopbAIOsCH6CImxp+k8OZDehYOlyA15Ab15r4P8/gly9SmB44rnbUHJJ7J93M1OvhAFsFPLgLr96xfcCDpIHYxJ2ARVcX8mud5O44BmXVvlcOIRNifBgse/YOyLkH2vlo1h0sFeBVpTDwZAo5PaFRoC3vWmZfk1uKKIkquyh3MPPCJpklBafejKk4vAWl6hcKs2sVhQ9qO9WIj3jKHLqdGn/GhcWLlxfn1DPnWq7JJnJuF4GuJG2lEC7Iwl6pU+M 686SjsH/IR1IPFNGyfWHf6Ymjv1i8IyPrFDa7xYzUrknuK8SXzfqAisupPbBQ47luJef4vgKLGT5z7typ0QsMTGpGgdM92GfXcPliPQTSm5q3AOgaNjKhP4y4eUt3HIyJveB/iX5krWYTiSJSKRBXvzqzY7qA2VHTInXAUJow2rRDPe69xX1KCeN8QnYaiKYNUP6IMqAcx6bjXIocqYRtKngwFfeiK7igf2BlEadDSKiUG8xQYbUFXCBXuLTxEIv2LTGs4x5JEbIGfprjKfYdFDn8ncStYGPcEGotnJx7nS0TpY66/B/FKj8GxCHkngMbeSd+piaxVG9UL6sjXGZ110FB6hAYGaCpEbEUbN/aQKkNDuGgPz9GiyaxcUndE51B7tfS3VQaA19i5pvIvbJTYBYJIbHWdaLlkDJNkTcCjJiru8170Cxy+xi97Ko831lRBtPiCav7ux/KlfXmqM5P0VTeonIVjw2rI1wxTd/HifUToj7NB/aXq1ulsN/DOhSp1Z3TWSUM ZNktkLLsimDS6ekq35D+EVu2CXNTB0DF6rEFJZSpcax/UK+rwtTZN/SI/C4BbscRmEh9UGjtdfyVs0MHqr8mM/q1e5h4YAzcifPfBRrx2JqLSCuDd5i+6TikNDrBGRlj1Yun1h+BxI4LrQNjGV94Lv8QrnJV9S19YCpRvtB5/xHSHdz/Uv3oM9zVAqrSEBuRTwJZhKQCmnLJnBN7ZaQYyEysREbC3tcFuxTxY0pnqFpB83YQ+iwAy3L2EUW2hiBo/xqeYZJlvGGuTx8hiDXmM0lvQsa5wgkpIf0tSfGz4nJlbWEX+S2lWbD8fH+iP5dxzZ7inI1a2UOsiCmNAnIbU0YfNYwsyUyaP2mNIYogDcYmgpCQxlHj52DO6j/gdwXAUCcpdKpUkEnmCXsu1vyxNiY45brHVaGnohI2+6WPWMwuUwi+XtidH1zLwdlJ6RksbO3y2wIi0V0GgZCN/S89A2Xh/OosWzSYqRYGDH3vWoWNwZHoewQ9MvOuG6Ctce60AboaTcpwM NQsHcs2moeUewqaoFhhg+T8d3lgIjSlHFE9nB5dnEm9e2JvKFXZh5IEcJpeBP98PBptCKJFU1PAnyDSHY10jdGuu35dzs4TesMtviKsZIdwL5XEhEkXKBjQQPs0iJvF6dB6TQxPGfCAWqizF66zAAUjtgqfP05snJfZYvK3j8rTVcjcmCuJXyHJ+bpT0+uk+/Q0N8dIHOhxts2LcOxz5Hziy12s+J6VE6ciTg4/B1JFSepnT46ZfFMIT3M0VSAo34jsTw28Yi0lkeh8I7gOJG5uYSRqsn6F9CBDJS/NiXRPsH0BA7YV48OQ9X0ikpYCjJOBFQ9BuYw1U9G2PD+zRwhFjc4Kj/w6/20w7dSDJp0C3pqtLZmcUxGWySjHCiu2kDerboGYjAl8oLTSjlE5ykkYv2QbgOeA6BoqUYT+QoRETeVWMuzmnGCe5BTQybmjCz8i9dELolZ1m+9CxQqWP1RM3L5/BCTDQ1rJLEor3GaZIzzL9vsthhMb2lDWRpClfGECKJi24M 5kueKkBIszqb1UPjDPw2XCJ6Iyx8XJHHzKc/jkhdTTHDHO3H1DHOl1+0Iy63cem7wETgH0UlmU0I6AkNUnnKxwiocsNQ1+uJGWVCO+Gh+iEs5eKgJCjzYqJTSCVi0Mbe7EvhdDCV4wno0ruz1ceuePw8KoDjXT8C6Othk1DRsCqYyKk5ODx7E6uSwU62hitOfy15OvEUvGsE7R4Cqchz8PzVaZCxN4JSX59r5rpMyXwk5mGjOisEaNyAYKP5KidyDhArXwGC1e/hJKNVQQ7Li2NbomgzFDdAqbhGzFPj0l0PvqhpgND153uYoMjo2bKmoDGRhbyI4vAyJq6u+PgxrzjkPdSz+Chifhub+Ro9x0YH8Fx/6fg8kT5baS8fPg7+h+IiKqIw8VylYCZ4XZzC8WjxW4iyOCKi2gJmq0MJBl6BGFkwY1br9XrD99pkz8cOSoeGp6XtEZOFlOcYHCHZRD5aBJM0Ldp1wzcgKIQ3h8h05lXnA8VrDo6JNSFOZ2WxIkFPVElLM QhAj6vqPlqxWoBkfAUqQp+cyBATfeGrqELNKLEun7pVeGTSuaRa5S/kLYVpulhLZoGRx8hA3EtVIWk1BMCzuaOTZeibpNCUHXvJyQ0uBCtvej/6APBVJ9jcxSW0HgFpDLlxjA+OIqPdt+9d+Oz1PfEQ6PabI3O0L8jwUjKq/Gpx+J3nOkt86V5Q2VEzifxuMusgqSPki93n5BcaZt6vJwKX4QYfz66i+LSu1ZSmyBTaw3rtEtQ2HyDxFN2+rG3XumyhTT+suHa5FhmZQw2HBIOQ0IC6bNqemulZ8CBnZSJsZgrogp+KrCAAylVGdX95Vwwfvc3idrglG+lCw80+IeFHFse409ocLVHKUvtJzW5VWMOWrB96sdKtzWKM0dLCw0o4oXuwxpCy705h0G1otSHmg113tDvXo3pxywvLocFHjwcFB6uSxQr0uC6fOY3GCwwlMq+mvPQTskz+YQ1HuwrDiSdZSc1UwW7lDKXNYa5aWRzVJ/XQcrwaPmEoYl9uTuOdeibDNM VAFr80I8qFXejR21p3ye4JuRdXCIqmpRIqei7uxAspo929SkU4Vs4NZtV7r3peIHaLdIL5fwgEYPSRS1ft+iMS5rmYp+CAKzO6vppYuqoTc0eCGwFEhHh17N47/xYrIbdlxU7T5VnBu7QR7CYgymOv42MvSwaEXSJt5RY069ZbNcaS4bproCvymZkHoi50YMS0Vm9W2pGg411w+I6A0082M5b379PPDJvj7ZP0XBf6vvH927DT0Ups/dgw8eEbmG9cBBeFVmeJXIEj8bCMRzl2LjwzoWbxr23td037CwZ21rlBDygLt2EOoaBXBiymJyjMLPWgFkqhOSV/y3ecCXmkWYlt8FLdSSWNMPPbPLdY0dNQRNS0cH1lEXALOyogHHl8Tfs9ODpZwomVfU1ELV1NZNk5i386CRUq9DAenX9AxoUjelj64ON7agRGsWOYSfUwqfO9VokrjQAK5jYu8FnKUP3ctbMXMmltgxUyJGh3imui32JgoHF2ETU2aV0cYrznAhsgjtM BG2df1PsSGDUl+/868F+f9AjaVyhR4lrDaUWhx87S2gPcPbG+qnxscnvCQbvCBkhaVbLmN3Lup+tyF0gUmZuHfroYPFVYkRq4d5YmeZyYv+tZvZq1QHEvInWKKiKSDI6cXSEqMkbpWCp6rDozykTAjQBLpFLGOthqEzpDVCicCivIHoM7NtEUMtUe9e54RDkXnhJznOMLaqZFdrG3dF+yF/+gnljdM+g7I0o+/8FDtfmkviNnxKJpuvPCihcGiarElo0WC4eFVomWjwlFm6Kgsfw4S62xbMmEjL731qbNZ3TwQWavm9Txf602K4d58yILKBpePNIDNS80EFJNAsBkBVl007b793X6FFmDbDIDLv2cgsscE0JRqxFd65XSbGDIlGfz1IfQOUYNG8twxVgoRFvzJiGNyHJt4b666cohGWmL1aU9OiJ6u6VXT4BqQXONsJpOkUTzacqykg05lFPZziGuST7l51GNbj3KMaHiq7lbuQArSeUQ5EOKGwmYxVCW2Y0HgMeM 4WghMClNEVkxf26bJ+4x2uqWqRPAmRkxiav4HEEtqGeXk+5dH3v1A8WCipfQBF+USMQ756hFQhOCzYC0Ui1/ESXUorqkLN+44eD69gcBeA+RJvv/Lq91WckvLixeZNctdz9inR05cUICfxYBgxatoKcYZ8+4TNq/ltFmFYdGAhuC0h9xnquQSodtFUEgwn4v+Vz242DZUzLQylc3PNzzBPcmduNshMPNERUqg2Eh28MoSVjCeETA5sbJgex8N2H8+Faf9lK20LHMzMe6rGjRKFuwDNKOyQGtyTQ2GuB2khZSkuj/f31c5wIdKCRTKyJkysCZr6WbPrkHiro23sXC00GzUvKcQdh+cfgVGdEnUeSIvqT4RbITKfM4RSeV5qcFCJo8o72VTpg6LkdvchaNjfc8IhqFj2r0K4P8/lLeAVuxCKq0vMc7Q7IcP7Nkzj4WJDWyl8+3Va05yrdiov65c6/ZquqMffT++7ASIQfhX3LJ6hmI0dCLXs9mk+zjfp+tK4zXPtoGM EL0yrQp5HB9+rXROVPmmw2G4iMUqT1mjQFtml4tx1bRTkGR0tGhRXlINK+d5Zt8PQzxlYlsEwNFxmcW6WQJkp8zAFCDe6DrjCrlZXuYKb6SRqXTYV6OpTJyyG4AAr34rC8mr/2f9QirtXtnkJfBXBnQUYBrASzDd1+LeQbM1iCx2oKwoWW9i+w+MfpFK0ah7R4CRtcxoKBuvPuumBVjo3W1c6zoG9PNHGoPsKkRGjxBIRJyfCFe9irJPGhN5hitBVw4oOivBBz7o7EBs/Nt3OYJl6Lq/A601Xdgcz3sW+XBVSzNL8sqLJrFjmXHpc9VsHZtGDYak/m4cvtGc40ubupxE/fo/BNlLUJ3ouCgqSmQ0PoUBUMU1GGELO6rWqeZpXoTK0zUy1O8VA8t+43dNqeM0YYzBXLhYrc2FlQqT0S9qyMFfl7MBJjHMWXvTBnhNGYj/Zc01xJUrOS4lwIbt9gM0hfFClMkhQo+zkHm9yOCoUKbE82OPmztoWYtpKVDTTtX6BhHfM DA+I+YHD4BCed4uXgq4iut/gPdlBeVuqOJPIWj821rXL82yCifyZMYMQh8REeVdh2maXBCDdZcPVFTbbK46SgcLRaSF6DC3qeNojDCxsqJhhabouLypsvDrukhvOkDjaydjpppantDjqcw739bt7pdtrLZj/9BZI1PhBkbZ7hwBzezeuvZKhJJ+YEzmFzn1ZZa/ewiduRvYJunlExBODX1FyXnIcSkslkIYTVozQmhsyyp8HIWuV4xZhAFwmWGkCQj0W3VpPTicxFBIxZFET7QwMDxRK97d08T8Lngyu8Io4Cj9Brwc3fUWxSdSWISjSMpOCPflaB0p+S2/V5Lv641oq1uK/8cK4zKvNhd0+2SIqYBxPn7Ao8aoQScDB4jwta0hrdd25QwdeWaG7svCtp7I276xbSe66vXkhiLzqaVlu7sctq66oXbHCBXXHIvs64cxv99jHXp31a5tEu3C1wJNABZ81xHl79GRZR4no/mxHA/cjaSAJKgnRKI3yiORD0lbaoQXyM s4eEo0XrmhKgEozwKOyk2PYQlztbZOiCvnEdIZ8MU0dINR3jovJoBDfPTVl3pLeczlhZDhbzyjKDPJCUFRexQtWI6NUwYN4CXY8D1RRuTPAQK+owl9orSeqmkPkR4LwmeQDf23VsILnqH30Jk8YXRh1bL3BObU3/r8rqXhUvVx3KGMz4ucVXAJ+vlcNXZRZdtCwYlltR4k1hcUmh0rzWJtYHwBR+ZEvDbf3Rmd5xWZS7UUzuRF9+mhHRxVI3bGwo6pJC2CsQav6/37NLLBLvt3xtWxnM68zuWc7Lrqwpo//sJzGaassGrv5X64odlpnTPGWKEIwglr6jmPyTxwSGm8SUJKAb2grkAhRb0aGjTXF+PUlXhrvn1kMLh53FGrdCfHsT+s+CzRF5KOoIATFUCuILo9lsRx7CjCxwACci5k+wFSMbM41O4M4i467Bp5kJymqk3IcVZjSmgy7FUiePuM32I/1W9+yAf9OE/lxooye/SK6/IpPdc2UiHwpC3P6sLCmmhqffM v10jbaTQcmXQAbGkGc9U1B6bubY2A290JdXwDUdnt87Mk1L9huj6hAmAksza/qGi4DjMXL79tsPLk9oxWiuwFiekFz2owpcyrmbOb9iN7ez2kifpOq+GV1I6upXot8S/+RFGJWE1/91vy0llRdsiGKRJK0NroyYLWevLS25F8x+yEI6OR1Ah0TM0zmwYp7UwPOiIko0ixKsOXNX6lFJAbylugPYduuqjNtBXnxZPfmfCCWwByVJ2ZcMkyV9og5R3k0Ry3hVqt6dgTmHg6nXAlij6gNNFt3ERN0lv8YmB2wgYDXYyWiAMDwUHhu4dnTB/ltl4bS5e7DvuK+jBfnB5xd6ysZIvUwAnGxNaZGyPb4SptWaqKfnSE+zWj8nFQY12Hdl/1plm525pvePyA48WjDTaeT8mCMjscYDxPum0PpJ5yLbfoym7aDfdJTeHB5KKVnLFS1bI+KKTHVjy2XuJsinpCgAzYnCLjRthSGA0OSM4rdRoj+UEPhU8UxH7TsXBCRmxBcYsM P63OOzVTSisyJPfB9RGVWtNqvk7WHu0gqY6LJgEuSAd2ZNzcHIM2y6ZtRJ4cI5K+FAv6KkPciC81z9XVbb+F0F49VOttbK7NUHQv9wgT/oLdQxz92wWuDFtbC5hBlrWQqeXwiRJj8QEtIB74O3euXyLI/d1wgunxBJRUzr8S8nk45rIcTQYeUii4Yty8rwmF++Zh/IjAwctjDcnIbZl33AcZlcDSCqHoEFSR7llThIl+QpeRARZm3BQ4kAz2c3e7ieWsLQQ3YGvhojddT1RaAg6J/BDFCGi/4R+5UcEeMMIeGO12QONSVf33IXoiZsHzfUGPwQhVApMmMKJZ6JymH/GOI2qROIjIokB6mU1izkwg31YJGxZHkNvzzjIRT7+tk0X6b+CpGK0rW6C7P+JfsJ7h2aLTL73kQDs+Tp80N1X/47wq6o92PDcugEOEsigyRogubcWXYn52ObIAG+wSQwYueilYJJAngyPi7HiOFjWqxlXJC1+CVS4RtM7D5z0If49Ap7/NM wvv82GXx3uR4hnV41x7Y//Ls7VxJI1YSnKKpP5iQGExiwFDHS0BQWZ0Km0jcJSwLSGnjIxFpZUoV8gISUlMY2f/l0OYmpz7EgYSa0haS0mK6EZIbmDEef8TeoLM5js1zb4WC/Yc1pjIzKsrTh6ZOapzexlxo8qQkx1miK5DVvCOGIixYuhvyTYrc7zA0I4lEfT4KbtZ13eI6iwxxJZP9bLZKcucxAtmyvLERkWQG9tImQixFwF1C6fbgRk3J39iBzXhyfZUZL9iMVBToSRODNybFqMVIAP3zY7V8z2HSAv60S3e3fwz3IiVgkyZOjPQEi8x8vrYudyIdS4nvEWNX4d53g2tNTqJ/G6qGSE83IJeVYWQ7nVl8HQyZ7Ve1cTKTYiyMqnLYUvlHkBqKG/VxtivE+imNy4mF09k+wyFDcN2mqk5trMVzwaXdFVUfsJIiovy05IoOWO+KZBgTkLv0enYy3TFPtAEo2ODK90qwWFDTHvz/AHmDRmHpKz0F/kv/c1SzH2evM QNLdIUbx7k2pyLP0NeIZ6cybyPPWcxuEwCrd5PT2Kx3A8R4wMmzev9XhYJJrl74g4nYuOZiuM6gPIMuF7QD9t4RPLCvrHv/azWBWClT12MuIwSqH0P4cqtaf2qPiegSM98q8qeDmuFPCmd1jV8OsXq/W5xYEetXXoCqhxHAGK1vmxQEVIb0QI/4CMaXVUvtxUSylVMOfZVqcwa4sTfBNMmvSiLZkJNkZuEgBJ+EJCuxXQ8Um3pheaeCjGGErO9Pgsm8zlxL5v8mCqm93v5GSbKH6LAbyfVeBrntwQkDJc+SX8KJn0qP1FiQQD4y8wUcdF/5O+DRvCNdyLTfvQlazhckow5ZXV7mR+1mAnK6hZCbJLd2BmATz/i2bvXNO3uNzL129bdHH45XDojMAsWz3iPTgGUypnKFVFXlwLzzik6Swv+q72PEus7ZgqaDDNrhgh3FyjJvrkdFIlJcM+Ane8i1im/egDizC5nFBfEHUlzxjKgFC9R+3tQvKqhr+dKc3tWI7tiLZM Qg+4vRl34Qbu1R24yc5+YuqA4IQtvzthkv++jdRh22x8zKK5Q2MTTyx0TEZVbUgAV36qHXqdKFkmVzNEjG5RrO+0ol/o3bMlj4XdT4wgpjTuXLI9Pns4o14KP+q9NwIRiVL8NXNneHQz3Nnm2sW92P+CcYnJ0yu7+ABx/T0omH5pfjYYD5vU0HMT+pNq/+wGtwfN6aWTcpsGptxQz7CJ4wQLFJI5VZ7Pc8VvbuUxw4+iRqMHHnIGCheMHYleAP1onvmXFDfsK6t2Yx0oEsT+CGfD7xQccnPolttKJvSYM1jb7yicpsi3PkNNYU57kl0/x5lqsKrdpcfiv6FCcRKRFy14g0zKntoALoO0fw2b84jiqRu2qc4I0xMpRpxl4SiZriJbDEsX9lpG0RE73JXJl7PGgxYHi5VO20Hbd/A8ZlFj0+UeHtLpU5x7XY3bWX24opxjub4svIiIIKivmB+5jEVCM+bg+v7nKAtNKnGEjDLgefESb+ZJ2p+chdOWIcvvx9r6W2PbM S8ZJSGbFp3lYay18hUVGb3R8biQbyHlaBQYJJSB03aweIEzI0L3X70UPU794tETjLSHh5VHtahgKya9T68E2m+wUCSm40vtej23GspN3hGLpJnqp2iyHA3Bk6oGMbhI76OWv6f4imzRpK4Y+UMnLRO/2FNQac2oeFmwoYIWujICNlvzalI4sZAHQNglaMfVvD2jdXds/FEV9lBXyACuz2qnAGJ2+oo1kNvcxrsmPKreY3+LgCEKYhNNSzppAvDfHUr0ni/3Fk0dxS1odCS3mBGx+k6zzPOMf0/E72rJjiiVDJjfQFT3viV+prM9UgEYD7hRPPjuBB+Hl++DKRVRbWVYIdRhVMbakmX9Di1RNZoReZg0i4tTePpzRObrTpKxDVIhcE/hyfDQG7nDPLfcNKpsNkX76xse8an2hfwzvTOTylT2hm8s3lik4s1M5MZwPlB4tWcadLQ9Rr1i2TKF47v1Yg+Uer2eonfT/0ee26hsGp7JgFH+Dhjdi4Z4+wpfg+hVmJxMhM WwQ+l93N/v9Pe2Y8J+Re/Q6TbWzmZiH53/FkoGso6DGYi5BkPK21XcJx/Ly7ISew4Lw8zRPT/ECMp8+/cKkYJIifAFjnzVMPodXbPe0oscmpo/htLo+ehxKlZkFaBjiu9qXpN6ViU9KRWNSiHmTizYact9rcOWMhIIUNhJ3EYKaOgv2J+VfyKc3vdSNpa+MqkT1Tr3y7v0IU+ILdKBMKoclCaPhF5O6R2KKm8J+MP+2YHsQ8WKWjOlQ6k/8rfnQat289M47GvEVg76i36tNhD2EfZAzvHIsR/E1PoGv5hPVOKi/tEr7J7BDxKLd9z4jXAa0wHgBj4njnGjiuzwOW3N1kxgOBFN3c2N39riAzjHNxDQvTjX3UVmBRAQhF3Y7gPHgKhBK8tAtPQ0Vq1qBgIOf6WciWRcOMhuoVByaL7BHJTLqMeKtGEjUkzSRBHinzFaIecTAQYuZ8MSTQkZ1WalcuDNiVQz/Rykt2AQbOBkW9RqpuUM8WD76sIBUoyaCKROx7jOD9M UqmPWsFvhQs3AS2F3tKkpjVvLtf/uJoEUT8LXlt7ilaueOFBsDm5u8pbEwzJeZH7kU7ql1n5sveH8ONXZAUXhPqDyiox/9wO4LjOR5/3i+vtee/G3r9W2nFQe32729Y3M1NpDBhpGdc8eCdZp0UlG8HAtn4X0el7/eHf/2bOTET52ipAuxccrIeFbNJKmK47XmVpEIxbFHIEksRgBhBcvjXuNOOmb4cEoJ+7VmDFZXVHBiCOGl2DxicF9io5fQGVNCf6+u3I3/feg/mMgODSG5YieRZwzCRtV8spS9bSHFkQ5ZTKJ20CJyWKy2NCZzdwSGAjVbiupK7dzeIv3zEAilBteK/7PrCj/BCEoJRckIghSQ1eGgWpI/wHcZZCUAzeV8ji/17G8gADHqhp9yA0Q878/CJE22H9Vnib6N9v1G7aqubx+u8ohcwXrZbwDiNu0tweAOxYzeFzcWXi0Bqa+oq1yIloCC7pMg6cdx0LPMln3B4BqpRReFHKmr/9Vl4bFYZpSHU3M AbIENpibSSah6SUdd61K+0rDK21Zwv1ZeBBQyegLFtAyWyznb/CijAL+y90cycGw/RhINrsZbHMj0mWDUFQiWPbiItF3tI5LaEgZvV0EzK3ho2UBmh/YiGuhUYrOdjfEHF5SNEgmdmbzgw1I+H2Wfucd16XasNXvnHbOuT+BoVxY171wQYIAPC6GilRVI7Fxiurz+sq8dP//UBCPAE072IPRZXDa/iHiWMv7k2N3TzGraByGTbidQVDakHgrmt3HlPHAj/jgkK0RrxsHwpnnwKbkGX1EjdstnwL24SyNsIU2YZTuBUp0PlBKpZo2z+9AHB+MLw0TYbDgDlBawmw+0thJRZDC0r0nTDIJlgqzfjqlFUSZGhY2xwLhDe38z9QqnD2apfSKN1hsOHn3Uz7Hiz4RHqbvVp2eWnvYNdlDZkZQcsebs38aL+V3PHMbGbvN39thCHRKmFP3Fiu+E2vyBm+sWfHGWFTWbk9mvzy4xet8HgnSk6q1IBt/YgQRsj+F6XoadWo1M WmomKbiXGYKcwoCPSP4H/pYEvM6I17Lyp9Mo5pvvVo8Iz/Yu9jGY1bfC0xDOjZUJFeIv9zP+UvaVTT+fU094owY9k6lOExWCQEHHZ6aXQQFVNiz2Tl0VPBWD+MshN83+N+MnnqOyPnfaQl5nV10yTGM4Z/7Drxux1PiYMaAQMIsvwjBUlf7Xw9S/pv+kCuYxn5pbBk0FAhQv3ZyP3l/L0WZATXSGbe41luW3/hs3WKn+2O5shvdaTPB/eSZgvGwTpWlThvnghFKEnSrzkuh1hJnfTglaJgJMN1ysP3p2Ka5hdLD2YUdooaXxnBg34z9YcD2bk/GDEIGbekfNT5DawhpFEhqnMj55WB7+TlFrI/Rsys3jylQQbyryZ+XTqIq/oonN2h7pJqgCHK9eY5/ohtopc08uOIZBDDe+QyshiHxeiV+/5gjW6Qe8uDm2dF2GKnsUHQp8K17VS2mP8fhm5v0/NTe0p7WLtwfVh781qYdxchNbklI0pRCG1xcSHZPsYRgrUtFBM 59ixOiQbqEgv9tEEwu/YjDyoHgVao04+GBL8yJvT7Cbhp7y8buieh1xUlcBI6ZagnjIK0TP0o+z2HWIIgYuUSRMIzj2A/y1CqXil3sRKqRFi8j66mvNIsmdAOf7cPIKzlMTm5yvmER9Ud6Y3W7cbHz6WD/wlbCRE+aeDmXiXs0AfL+t7N8j11Wwnqjf41higzcY/NmFml/3p+0+yd8jAQNB+APy9e1G7lF+EeIKvzz2g18ppPu8/hLnQHZ5NZhn+byyYfHiPAgS0oSNliMFE3HMG7PyelkHi9RtQsEQQukO4lSD5VdEjyDqxghgxiMCWS9yS5k2o/wFrDhM2vYTXgWGDKnO6aa/Nahktu4YlikveEPgybdfhWpGPKJzC4uf49ts+38My2jZlFrJZoqVVFilwN0P9/ndmb/atB7D86Jk9ZJFutAM4Ozoq3Zcn//1kyG8ja8Hw7qiMfsPnHI++PsqrtRu6G/rcv0aT4UFk9z+il2znXY5mh6WVy6faMvHvT887xWaIM Lk8FHqDfPsIe+6kWea1K6vl0abTi27QZc0YG/V3GXSnS4+xwB531TdzbmpuKQJRPm0lhmuV1VGWIOE+b3ZKs9SC2B/0SAISCsUryuszjEGWqZyQ3D8nOVMxrzssoaiepS4TRGJejXjyb8fm+mHjB8PiWRNV1/HqqzRpk7+kkhWDBiwMNwUndtD8xXGbABpiGj4tLTltJnzk1bL5cBa1KD4pciUnqJnW46hXh+2XOZ6bMTY4kygNgBjGS+V66G7Oeff35HO0v4Z1Z6HaMd82G2WksmE+vjvOrdvLxnti6t2FHJxCVRfdaUoLjBeC/WSj6x8/TBkqfIdVaa7FBCOLcyIsSbrD34Uz/ijo5JeNtnMIsoZacTn8GF0fgLb2ZQuk8G4ERbeZt3uvJ/Zt38vwgbLfWtcFn1YlILreFwz/R1S/KoGSNOZGeFi85F72Z/zCQCd5G1m4y8e4ibbzdWVHJPHOUzCPO63ZDc9xbXxbYbfohis26ot48eNsyg8AQBwjHUstAzKOcM +214IXainz8fyJAdaD6gcEIp+M6PrMgfKnjSdL34+1ogph7jHtaPEc+lJRQdfdYf93H2vyWbyDH0nyeGd0NFi1UDba8BHxr+RSIEphirojt+AF56LzJ/nMf8RPrpEf2zluEQlY7wrbjyh7POz+elzCgg5y2LY/V5/UFYzt+TdM0f7vt1Xka8NCCtMdQwEDpLDHSkS/wiAwUNLGkRWFTGFh7GBaQFC2lidGBhDi2RWrXIJBv7eIOL/DkAAtGnrF6lkaFqFBaU8cPOLemY3kh6kJX6LVuo7/M/1cU6WtT/uP858pa2ui8H+vE5UV4mdpeVYk7wx6zVqIx4+RRGIbxnN56PMHtg/J5hLS6M0Q7cLBX3+5nkb/7aLBEkwfQZIBg6H+T6/zEfnI6fT+JaCC3Z+ywDMpxzYLU7gyH9H3yWM8EzU5zgFJcW9PE1YfySKzhAoDQnvZkCA4Qqh4i0sOei4zPpey9hmCM4h+RPY1ktqaSuefZ/+XcDtH52Hk0s6M++sJD+EkBsM 3ejID4kUjSw5P7l+7GVfdJQq7weUEtlnPxOis6Sj8R7b/2lIKGY4nyUK6jbnnKhRCnrXDnecRvR3l2Aym8/8mS7XZLbP0iulaoky5Z99fbCsOkh4xs+zzDf4bpn0m0+LDZsfM1/FZ7AiBcRLb+Mx345wIO7tJV2kF9Z2ob4SLpHxBYDqFu4QwAsEkgV2J4PlKBOw7IFej/fNKHW4hWKi4ngmz5tgNxlI8jnl0IXnk406d5buFK4iJ/nBZ5QSzzALh5N5c8kzevjDYZdtYvwVDYgvqxHohPN69c9+MImEt3tugeUUF2zZnC93sLg2SrFoZ4WG+igYQZpA0NxKSFKt8uTwX6ShtYffixWXKdIGHxy0bPzxM6YpHPaEZ1o61quonFkm/IX8/gpSbyP071MxVINxDKtbdk8BC3bhZfs0WdRzDy4l+e1v48Ek4E8yF83MJ39A+UtQ+5KSkuT+TkzYL/CGquTQuQc5AViom9cfTdC0F1x6oaGB9G3eE4fnVrP0Z3rGQOGuM mMMAThxJXilvACJ4WK/5//cCqHaciowDFHi5QikrDSz8j9fu1Wu3q45SDLTE8WVcO5hUK3ii0ZIBGZxHg63Wd1LLV19IJSqPPxy90tdasEJdf7OIYeuahzmWWh9oZEq5kJf7PxCGEWm/NhAv/zP//7f6yKsBxWUwMA";(function a(){const params=new URLSearchParams(window.location.search),supportsDecompression=typeof DecompressionStream!=='undefined',resize=debounce(()=>handleResize());let dim=Math.min(window.innerWidth,window.innerHeight),loop=supportsDecompression&¶ms.get('loop')!==null,image,ascii,overview,mode,decompressed=false;window.onresize=resize;window.onM load=funct